diff --git a/.htaccess b/.htaccess index 7365954e..a5f29c9b 100644 --- a/.htaccess +++ b/.htaccess @@ -1,64 +1,68 @@ -# BEGIN HTTPS + WWW REDIRECT - -RewriteEngine On -RewriteBase / - -RewriteCond %{HTTP_HOST} ^www\.dostavka-vodi-krim\.ru$ [NC,OR] -RewriteCond %{HTTPS} !=on -RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] -RewriteRule ^(.*)$ https://dostavka-vodi-krim.ru/$1 [R=301,L] - -# END HTTPS + WWW REDIRECT - -# BEGIN WClearfyCache -# Modified Time: 18-09-23 0:08:35 - -RewriteEngine On -RewriteBase / - -# Start WCLEARFY Exclude -# End WCLEARFY Exclude - -# Start_WCLEARFY_Exclude_Admin_Cookie -RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=gp-admin -# End_WCLEARFY_Exclude_Admin_Cookie - -RewriteCond %{HTTP_HOST} ^dostavka-vodi-krim.ru$ [NC] -RewriteCond %{HTTP_USER_AGENT} !() -RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot) -RewriteCond %{REQUEST_METHOD} !POST -RewriteCond %{HTTPS} !=on -RewriteCond %{REQUEST_URI} !(\/){2}$ -RewriteCond %{REQUEST_URI} \/$ -RewriteCond %{QUERY_STRING} !.+ -RewriteCond %{HTTP:Cookie} !comment_author_ -RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil -RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC] -RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [OR] -RewriteCond /home/a0264400/domains/dostavka-vodi-krim.ru/public_html/wp-content/cache/all/$1/index.html -f -RewriteRule ^(.*)$ /wp-content/cache/all/$1/index.html [L] - - - -AddDefaultCharset UTF-8 - -FileETag None -Header unset ETag -Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" -Header set Pragma "no-cache" -Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT" - - -# END WClearfyCache - -# BEGIN WordPress - -RewriteEngine On -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -RewriteBase / -RewriteRule ^index\.php$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.php [L] - +# BEGIN HTTPS + WWW REDIRECT + +RewriteEngine On +RewriteBase / + +RewriteCond %{HTTP_HOST} ^www\.dostavka-vodi-krim\.ru$ [NC,OR] +RewriteCond %{HTTPS} !=on +RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] +RewriteRule ^(.*)$ https://dostavka-vodi-krim.ru/$1 [R=301,L] + +# END HTTPS + WWW REDIRECT + +# BEGIN WClearfyCache +# Modified Time: 18-09-23 0:08:35 + +RewriteEngine On +RewriteBase / + +# Start WCLEARFY Exclude +# End WCLEARFY Exclude + +# Start_WCLEARFY_Exclude_Admin_Cookie +RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=gp-admin +# End_WCLEARFY_Exclude_Admin_Cookie + +RewriteCond %{HTTP_HOST} ^dostavka-vodi-krim.ru$ [NC] +RewriteCond %{HTTP_USER_AGENT} !() +RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot) +RewriteCond %{REQUEST_METHOD} !POST +RewriteCond %{HTTPS} !=on +RewriteCond %{REQUEST_URI} !(\/){2}$ +RewriteCond %{REQUEST_URI} \/$ +RewriteCond %{QUERY_STRING} !.+ +RewriteCond %{HTTP:Cookie} !comment_author_ +RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil +RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC] +RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [OR] +RewriteCond /home/a0264400/domains/dostavka-vodi-krim.ru/public_html/wp-content/cache/all/$1/index.html -f +RewriteRule ^(.*)$ /wp-content/cache/all/$1/index.html [L] + + + +AddDefaultCharset UTF-8 + +FileETag None +Header unset ETag +Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" +Header set Pragma "no-cache" +Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT" + + +# END WClearfyCache + +# BEGIN WordPress +# Директивы (строки) между `BEGIN WordPress` и `END WordPress` +# созданы автоматически и подлежат изменению только через фильтры WordPress. +# Сделанные вручную изменения между этими маркерами будут перезаписаны. + +RewriteEngine On +RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] +RewriteBase / +RewriteRule ^index\.php$ - [L] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /index.php [L] + + # END WordPress \ No newline at end of file diff --git a/wp-content/logs/app.log b/wp-content/logs/app.log index abe3cdff..30376ef1 100644 --- a/wp-content/logs/app.log +++ b/wp-content/logs/app.log @@ -118,4 +118,52 @@ 01-03-2026 01:10:54 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! ------------------------------- 01-03-2026 01:10:55 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:01:44 [dostavka-vodi-krim.ru][info] Parent plugin start installation! +19-04-2026 15:01:44 [dostavka-vodi-krim.ru][info] Plugin installation: try create plugin tables. + -DB Version: 2 + -Plugin Version in DB: 1.6.9 + -Current Plugin Version: 2.0.3 +19-04-2026 15:01:44 [dostavka-vodi-krim.ru][info] Parent plugin installation complete! +------------------------------- +19-04-2026 15:01:45 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:01:51 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:01:55 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:02:02 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:03:03 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:03:05 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:03:06 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:06:00 [dostavka-vodi-krim.ru][info] Parent plugin start installation! +19-04-2026 15:06:00 [dostavka-vodi-krim.ru][info] Plugin installation: try create plugin tables. + -DB Version: 2 + -Plugin Version in DB: 1.6.9 + -Current Plugin Version: 2.0.4 +19-04-2026 15:06:00 [dostavka-vodi-krim.ru][info] Parent plugin installation complete! +------------------------------- +19-04-2026 15:06:01 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:06:19 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:06:21 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:06:25 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:35:59 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:36:01 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:36:02 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:36:03 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:37:21 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! +------------------------------- +19-04-2026 15:37:23 [dostavka-vodi-krim.ru][info] Plugin migration to 1.8.2 was successful! ------------------------------- \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/CHANGELOG.md b/wp-content/plugins/!clearfy/CHANGELOG.md deleted file mode 100644 index 5ae93adf..00000000 --- a/wp-content/plugins/!clearfy/CHANGELOG.md +++ /dev/null @@ -1,8 +0,0 @@ -##### Version 2.4.1 (2025-12-16) - -- Enhanced security - -#### Version 2.4.0 (2025-10-20) - -- Clearfy was acquired by [Super Page Cache](https://wordpress.org/plugins/wp-cloudflare-page-cache/) -- We’re retiring Clearfy in favor in favor of the more powerful Super Page Cache plugin, so ensure users have access to the best performance optimization features, improved compatibility, and a superior user experience. diff --git a/wp-content/plugins/!clearfy/admin/activation.php b/wp-content/plugins/!clearfy/admin/activation.php deleted file mode 100644 index 982f12b0..00000000 --- a/wp-content/plugins/!clearfy/admin/activation.php +++ /dev/null @@ -1,130 +0,0 @@ - - * @copyright (c) 09.09.2017, Webcraftic - * @see Factory480_Activator - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -class WCL_Activation extends Wbcr_Factory480_Activator { - - /** - * Runs activation actions. - * - * @since 1.0.0 - */ - public function activate() - { - if( !function_exists('is_plugin_active') ) { - require_once(ABSPATH . 'wp-admin/includes/plugin.php'); - } - // Deactivate components for code minification, if alternative plugins are installed - // ------------- - $minify_js_plugins = [ - 'autoptimize/autoptimize.php', - 'fast-velocity-minify/fvm.php', - 'js-css-script-optimizer/js-css-script-optimizer.php', - 'merge-minify-refresh/merge-minify-refresh.php', - 'wp-super-minify/wp-super-minify.php' - ]; - - $is_activate_minify_js = true; - foreach($minify_js_plugins as $m_plugin) { - - if( is_plugin_active($m_plugin) ) { - $is_activate_minify_js = false; - } - } - - if( !$is_activate_minify_js ) { - WCL_Plugin::app()->deactivateComponent('minify_and_combine'); - WCL_Plugin::app()->deactivateComponent('html_minify'); - } - - // ------------- - // Deactivate yoast component features if it is not activated - // ------------- - - if( !defined('WPSEO_VERSION') ) { - WCL_Plugin::app()->deactivateComponent('yoast_seo'); - } - - // Deactivate cyrlitera component for all languages except selected - if( !in_array(get_locale(), ['ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE']) ) { - WCL_Plugin::app()->deactivateComponent('cyrlitera'); - } - - if( !WCL_Plugin::app()->getPopulateOption('deactivated_unused_modules') ) { - if( !WCL_Plugin::app()->getPopulateOption('disable_comments') || "enable_comments" == WCL_Plugin::app()->getPopulateOption('disable_comments') ) { - WCL_Plugin::app()->deactivateComponent('comments_tools'); - } - - $plugin_updates = !WCL_Plugin::app()->getPopulateOption('plugin_updates') || "enable_plugin_monual_updates" == WCL_Plugin::app()->getPopulateOption('plugin_updates'); - $theme_updates = !WCL_Plugin::app()->getPopulateOption('theme_updates') || "enable_theme_monual_updates" == WCL_Plugin::app()->getPopulateOption('theme_updates'); - - if( $plugin_updates || $theme_updates ) { - WCL_Plugin::app()->deactivateComponent('updates_manager'); - } - WCL_Plugin::app()->updatePopulateOption('deactivated_unused_modules', 1); - } - - if( !get_option($this->plugin->getOptionName('plugin_activated'), false) ) { - //WCL_Plugin::app()->updatePopulateOption('start_first_google_page_speed_audit', 1); - //update_option($this->plugin->getOptionName('setup_wizard'), 1); - } - - /*if( !wp_next_scheduled('wclearfy/google_page_speed_audit') ) { - wp_schedule_event(time(), 'daily', 'wclearfy/google_page_speed_audit'); - }*/ - - /** - * @since 1.4.1 - */ - do_action('wbcr/clearfy/activated'); - } - - /** - * Runs activation actions. - * - * @since 1.0.0 - */ - public function deactivate() - { - - if( wp_next_scheduled('wclearfy/google_page_speed_audit') ) { - wp_clear_scheduled_hook('wclearfy/google_page_speed_audit'); - } - - if( wp_next_scheduled('wclearfy/google_page_speed_audit') ) { - wp_clear_scheduled_hook('wclearfy/google_page_speed_audit'); - } - - /*$dependent = 'clearfy_package/clearfy-package.php'; - - require_once ABSPATH . '/wp-admin/includes/plugin.php'; - if ( is_plugin_active( $dependent ) ) { - add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] ); - } - add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );*/ - - /** - * @since 1.4.1 - */ - do_action('wbcr/clearfy/deactivated'); - } - - /** - * Deactivate clearfy package - */ - /*public function deactivateDependent() { - $package_plugin = WCL_Package::instance(); - $package_plugin->deactive(); - }*/ -} diff --git a/wp-content/plugins/!clearfy/admin/ajax/configurate.php b/wp-content/plugins/!clearfy/admin/ajax/configurate.php deleted file mode 100644 index 65183dcc..00000000 --- a/wp-content/plugins/!clearfy/admin/ajax/configurate.php +++ /dev/null @@ -1,74 +0,0 @@ - - * @copyright (c) 2017 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -function wbcr_clearfy_configurate_plugin() -{ - check_ajax_referer('wbcr_clearfy_ajax_quick_start_nonce', 'security'); - - if( !WCL_Plugin::app()->currentUserCan() ) { - wp_send_json(array('error' => __('You don\'t have enough capability to edit this information.', 'clearfy'))); - } - - $mode_name = WCL_Plugin::app()->request->post('mode', false, true); - $flush_redirect = WCL_Plugin::app()->request->post('flush_redirect', false, true); - - if( empty($mode_name) ) { - wp_send_json(array('error' => __('Undefinded mode.', 'clearfy'))); - } - - if( $mode_name != 'reset' ) { - $group = WCL_Group::getInstance($mode_name); - $mode_options = $group->getOptions(); - - if( empty($mode_options) ) { - wp_send_json(array('error' => __('Undefinded mode.', 'clearfy'))); - } - - foreach($mode_options as $option) { - $set_value = 1; - - $option_name = $option->getName(); - $option_value = $option->getValue($mode_name); - - if( !empty($option_value) ) { - $set_value = $option_value; - } - - WCL_Plugin::app()->updatePopulateOption($option_name, $set_value); - } - } else { - $all_options = WCL_Option::getAllOptions(); - - if( !empty($all_options) ) { - foreach($all_options as $option) { - WCL_Plugin::app()->deletePopulateOption($option->getName()); - } - } - } - - if( !$flush_redirect ) { - WBCR\Factory_Templates_134\Helpers::flushPageCache(); - } - - do_action('wbcr_clearfy_configurated_quick_mode', $mode_name); - - // wbcr_clearfy/configurate_quick_mode_success_args - // @since 1.3.188 - wp_send_json(apply_filters('wbcr_clearfy/configurate_quick_mode_success_args', array( - 'status' => 'success', - 'export_options' => WCL_Helper::getExportOptions() - ), $mode_name)); -} - -add_action('wp_ajax_wbcr_clearfy_configurate', 'wbcr_clearfy_configurate_plugin'); - diff --git a/wp-content/plugins/!clearfy/admin/ajax/google-page-speed.php b/wp-content/plugins/!clearfy/admin/ajax/google-page-speed.php deleted file mode 100644 index 149b874d..00000000 --- a/wp-content/plugins/!clearfy/admin/ajax/google-page-speed.php +++ /dev/null @@ -1,125 +0,0 @@ - - * @copyright (c) 2017 Webraftic Ltd - * @version 1.0 - */ - -//AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -add_action('wp_ajax_wclearfy-fetch-google-pagespeed-audit', function () { - check_ajax_referer('fetch_google_page_speed_audit'); - - if( !WCL_Plugin::app()->currentUserCan() ) { - wp_die(-1); - } - - $flush_cache = (bool)WCL_Plugin::app()->request->post('flush_cache', false); - - $results = get_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits'); - - if( !empty($results) ) { - if( $flush_cache ) { - delete_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits'); - } else { - wp_send_json_success($results); - } - } - - $site_url = get_home_url(); - - // Check if plugin is installed in localhost - if( substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1' ) { - $site_url = 'https://cm-wp.com/'; - } - - $results = []; - $strategy_arr = array(1 => 'desktop', 2 => 'mobile'); - - foreach($strategy_arr as $strategy_id => $strategy_text) { - $google_page_speed_call = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $site_url . "&key=AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA&strategy=" . $strategy_text; - - //Fetch data from Google PageSpeed API - $response = wp_remote_get($google_page_speed_call, array('timeout' => 30)); - $response_code = wp_remote_retrieve_response_code($response); - - $response_error = null; - if( is_wp_error($response) ) { - $response_error = $response; - } elseif( 200 !== $response_code ) { - $response_error = new WP_Error('api-error', /* translators: %d: Numeric HTTP status code, e.g. 400, 403, 500, 504, etc. */ sprintf(__('Invalid API response code (%d).'), $response_code)); - } - - if( is_wp_error($response_error) ) { - wp_send_json_error([ - 'error' => $response_error->get_error_message(), - 'code' => $response_error->get_error_code() - ]); - } - - $google_ps = json_decode($response['body'], true); - - if( isset($google_ps['error']) ) { - wp_send_json_error([ - 'error' => $google_ps['error']['message'], - 'code' => $google_ps['error']['code'] - ]); - } - - $results[$strategy_text] = [ - 'performance_score' => ($google_ps['lighthouseResult']['categories']['performance']['score'] * 100), - 'first_contentful_paint' => $google_ps['lighthouseResult']['audits']['first-contentful-paint']['displayValue'], - 'speed_index' => $google_ps['lighthouseResult']['audits']['speed-index']['displayValue'], - 'interactive' => $google_ps['lighthouseResult']['audits']['interactive']['displayValue'] - ]; - - set_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits', $results, 201); - } - wp_send_json_success($results); -}); - -add_action('wp_ajax_wclearfy-google-pagespeed-audit-results', function () { - $get_before_audit_results = WCL_Plugin::app()->getPopulateOption('google_page_speed_audit_before'); - $get_after_audit_results = WCL_Plugin::app()->getPopulateOption('google_page_speed_audit_after'); - - $results = [ - 'before' => !empty($get_before_audit_results) ? $get_before_audit_results : [ - 'fake' => 1, - 'desktop' => [ - 'performance_score' => 0, - 'first_contentful_paint' => '??', - 'speed_index' => '??', - 'interactive' => '??' - ], - 'mobile' => [ - 'performance_score' => 0, - 'first_contentful_paint' => '??', - 'speed_index' => '??', - 'interactive' => '??' - ], - ], - 'after' => !empty($get_after_audit_results) ? $get_after_audit_results : [ - 'fake' => 1, - 'desktop' => [ - 'performance_score' => 0, - 'first_contentful_paint' => '??', - 'speed_index' => '??', - 'interactive' => '??' - ], - 'mobile' => [ - 'performance_score' => 0, - 'first_contentful_paint' => '??', - 'speed_index' => '??', - 'interactive' => '??' - ] - ] - ]; - wp_send_json_success($results); -}); - diff --git a/wp-content/plugins/!clearfy/admin/ajax/import-settings.php b/wp-content/plugins/!clearfy/admin/ajax/import-settings.php deleted file mode 100644 index 9a8e8848..00000000 --- a/wp-content/plugins/!clearfy/admin/ajax/import-settings.php +++ /dev/null @@ -1,152 +0,0 @@ - - * @copyright (c) 2017 Webraftic Ltd - * @version 1.0 - */ - - // Exit if accessed directly - if( !defined('ABSPATH') ) { - exit; - } - - /** - * Ajax действите, выполняется для получения всех доступных опций для экспорта. - */ - function wbcr_clearfy_import_settings() - { - global $wpdb; - - check_ajax_referer('wbcr_clearfy_import_options'); - - if( !WCL_Plugin::app()->currentUserCan() ) { - wp_send_json_error(array('error_message' => __('You don\'t have enough capability to edit this information.', 'clearfy'))); - die(); - } - - $settings = WCL_Helper::maybeGetPostJson('settings'); - - /** - * Используется для фильтрации импортируемых настроек, - * обычно это может пригодиться для компонентов, которым нужно выполнить дополнительные дествия к опциям, - * прежде чем продолжить импорт - * - * wbcr/clearfy/filter_import_options - * @since 1.4.0 - */ - $settings = apply_filters('wbcr/clearfy/filter_import_options', $settings); - - $network_id = get_current_network_id(); - - if( empty($settings) || !is_array($settings) ) { - wp_send_json_error(array('error_message' => __('Settings are not defined or do not exist.', 'clearfy'))); - die(); - } - - $values = array(); - $place_holders = array(); - - if( WCL_Plugin::app()->isNetworkActive() ) { - $query = "INSERT INTO {$wpdb->sitemeta} (site_id, meta_key, meta_value) VALUES "; - } else { - $query = "INSERT INTO {$wpdb->options} (option_name, option_value) VALUES "; - } - - foreach($settings as $option_name => $option_value) { - $option_name = sanitize_text_field($option_name); - $raw_option_value = $option_value; - - if( is_serialized($option_value) ) { - $option_value = unserialize($option_value); - } - - if( is_array($option_value) || is_object($option_value) ) { - $option_value = WBCR\Factory_Templates_134\Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post'); - $option_value = maybe_serialize($option_value); - } else { - $option_value = wp_kses_post($option_value); - } - - /** - * Используется для фильтрации импортируемых значений, - * обычно это может пригодиться для компонентов, которым нужно подменять домены, пути или какие-то правила - * при переносе с одного сайта на другой - * - * wbcr/clearfy/filter_import_values - * @since 1.4.0 - */ - $option_value = apply_filters('wbcr/clearfy/filter_import_values', $option_value, $option_name, $raw_option_value); - - // todo: Вынести в отдельный файл и привязать к хуку - if( WCL_Plugin::app()->getOptionName('robots_txt_text') == $option_name ) { - $site_url = get_home_url(); - $dir_host_without_scheme = preg_replace("(^https?://)", "", $site_url); - $dir_host = $dir_host_without_scheme; - - if( is_ssl() ) { - $dir_host = 'https://' . $dir_host_without_scheme; - } - - $replace_host_value = preg_replace('/(Host:\s?)(.*)/', '$1' . $dir_host, $option_value); - - if( !empty($replace_host_value) ) { - $option_value = $replace_host_value; - } - - if( preg_match('/Sitemap:\s?(.*)/', $option_value, $matches) ) { - $site_map_url = $matches[1]; - - if( filter_var($site_map_url, FILTER_VALIDATE_URL) ) { - $url_parts = parse_url($site_map_url); - $replace_sitemap_value = preg_replace('/(Sitemap:\s?)(.*)/', '$1' . $url_parts['scheme'] . '://' . $dir_host_without_scheme . $url_parts['path'] . PHP_EOL, $option_value); - - if( !empty($replace_sitemap_value) ) { - $option_value = $replace_sitemap_value; - } - } - } - } - - if( WCL_Plugin::app()->isNetworkActive() ) { - array_push($values, $network_id, $option_name, $option_value); - $place_holders[] = "('%d', '%s', '%s')";/* In my case, i know they will always be integers */ - } else { - array_push($values, $option_name, $option_value); - $place_holders[] = "('%s', '%s')";/* In my case, i know they will always be integers */ - } - } - - $query .= implode(', ', $place_holders); - - // Удаляем все опции - $all_options = WCL_Option::getAllOptions(); - - if( !empty($all_options) ) { - foreach($all_options as $option) { - WCL_Plugin::app()->deletePopulateOption($option->getName()); - } - } - - // Сбрасываем кеш опций - WCL_Plugin::app()->flushOptionsCache(); - - // Импортируем опции - $wpdb->query($wpdb->prepare("$query ", $values)); - - $send_data = array('status' => 'success'); - - //$package_plugin = WCL_Package::instance(); - //$send_data['update_notice'] = $package_plugin->getUpdateNotice(); - - // Сбрасываем кеш для кеширующих плагинов - WBCR\Factory_Templates_134\Helpers::flushPageCache(); - - do_action('wbcr_clearfy_imported_settings'); - - wp_send_json_success($send_data); - die(); - } - - add_action('wp_ajax_wbcr-clearfy-import-settings', 'wbcr_clearfy_import_settings'); - diff --git a/wp-content/plugins/!clearfy/admin/assets/css/base-statistic.css b/wp-content/plugins/!clearfy/admin/assets/css/base-statistic.css deleted file mode 100644 index ca1f5516..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/base-statistic.css +++ /dev/null @@ -1,406 +0,0 @@ -/** - * Styles for the Widget to be displayed in the Clearfy plugin - - * @author Alex Kovalev - * @copyright Webcraftic 13.06.2018 - */ -#WBCR { - /* Number display */ - /* Number and bars */ - /* Doughnut */ - /* Widget */ -} -#WBCR .wio-clear { - clear: both; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers { - margin-top: 30px; - background: none; - padding: 0; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers h4 { - font-size: 15px; - font-weight: 700; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button { - padding: 5px 10px; - border: 0; - font-size: 11px; - text-transform: uppercase !important; - font-weight: bold; - border-radius: 4px; - outline: none; - background: #f3f3f3; - color: #656565; - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button:active { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5); -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-loading { - width: 56px; - font-size: 0; - background: #f3f3f3 url("../img/quick-start-loader.gif") center no-repeat; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected { - background: #f3efe2; - color: #d8d8d8; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected:active { - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table { - width: 100%; - box-sizing: border-box; - border-spacing: 3px; - background: #fff; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th, -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table td { - padding: 16px 10px; - text-align: center; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th { - background: #efefef; - color: #777777; - box-shadow: 0 1px 0 #d8d8d8; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-check-proccess { - display: inline-block; - height: 10px; - width: 30px; - background: url("../img/quick-start-loader.gif") center no-repeat; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-servers-list-item-selected { - background: #fffbed; - color: #cec5a8; - font-weight: 600; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-success { - color: #8CC152; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-error { - color: #fb5d49; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-warning { - color: #ffb635; -} -#WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers .wbcr-rio-warning-message { - margin-top: 30px; - padding: 20px; - border: 1px dashed #bfbfbf; - background: #ffffff; - margin-bottom: 40px; - font-size: 15px; - color: #828282; -} -#WBCR .wio-columns { - overflow: hidden; - padding: 15px 0; - counter-reset: cols; -} -#WBCR .wio-columns [class^="col-"] { - float: left; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -#WBCR .wio-columns .col-1-3 { - width: 33.333%; - padding-left: 28px; -} -#WBCR .wio-columns .col-2-3 { - width: 66.666%; - padding-left: 28px; -} -#WBCR .wio-columns .col-1-2 { - width: 50%; - padding: 0 20px; -} -#WBCR .wio-columns .col-statistics.col-statistics { - width: 60%; -} -#WBCR .wio-columns .col-chart.col-chart { - width: 40%; - position: relative; - padding: 20px; - font-size: 12px; - text-transform: uppercase; - background: #f1f1f1b3; - color: #abacaf; - font-weight: bold; - border-radius: 5px; - margin-top: 10px; - text-align: left; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -#WBCR .wio-col { - float: left; - width: 50%; - box-sizing: border-box; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; -} -#WBCR .wio-col { - padding-right: 20px; -} -#WBCR .wio-col + .wio-col { - padding-right: 0; - padding-left: 50px; -} -#WBCR .wio-col:target { - animation: wiohello 1s 3 linear backwards; -} -#WBCR .wio-number-you-optimized { - margin-bottom: 1.35em; - overflow: hidden; -} -#WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct { - color: #828282; -} -#WBCR .wio-number-you-optimized .wio-number { - display: table-cell; - padding-right: 15px; - font-size: 48px; - font-weight: bold; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - color: #828282; -} -#WBCR .wio-number-you-optimized .wio-text { - display: table-cell; - vertical-align: middle; - overflow: hidden; - font-size: 12px; - color: #828282; -} -#WBCR .wio-number-you-optimized > p { - display: table; -} -#WBCR .wio-bars { - padding-right: 15px; -} -#WBCR .wio-bars p { - font-size: 12px; - margin-bottom: 5px; -} -#WBCR .wio-bars + .wio-number-you-optimized { - border-bottom: 0; - padding-top: 0.85em; -} -#WBCR .wio-bars + .wio-number-you-optimized p { - color: #72a53b; -} -#WBCR .wio-bar-negative .wio-progress { - background: #D2D3D6; -} -#WBCR .wio-bar-negative .wio-barnb { - color: #9d9fa5; -} -#WBCR .wio-progress { - height: 8px; - transition: width 0.3s; - /*.wio-bar-negative { - width: 92% !important; - }*/ -} -#WBCR .wio-bar-positive .wio-progress { - background: #8CC152; -} -#WBCR .wio-bar-positive .wio-barnb { - color: #72a53b; -} -#WBCR .wio-bar-primary .wio-progress { - background: #8CC152; -} -#WBCR .wio-bar-primary .wio-barnb { - color: #72a53b; -} -#WBCR .wio-right-outside-number .wio-barnb { - display: block; - margin-right: -5.25em; - text-align: right; - font-weight: bold; - line-height: 0.8; -} -#WBCR .wio-chart { - position: relative; - top: 1px; - display: inline-block; - vertical-align: middle; -} -#WBCR .wio-chart-container { - position: relative; - display: inline-block; - margin-right: 5px; - border: 10px solid #d2d3d6; - border-radius: 100%; -} -#WBCR .wio-chart-container canvas { - display: block; -} -#WBCR .wio-overview-chart-container { - float: left; - margin-right: 20px; -} -#WBCR .wio-chart-percent { - position: absolute; - left: 0; - right: 0; - top: 50%; - margin-top: -0.5em; - line-height: 0.8; - text-align: center; - font-size: 54px; - font-weight: bold; - color: #afafaf; -} -#WBCR .wio-chart-percent span { - font-size: 20px; - vertical-align: super; -} -#WBCR #wio-overview-chart-legend { - overflow: hidden; -} -#WBCR .wio-doughnut-legend li { - display: inline-block; - position: relative; - margin-bottom: 15px; - border-radius: 5px; - padding: 3px 8px 2px 31px; - font-size: 12px; - cursor: default; - -webkit-transition: background-color 200ms ease-in-out; - -moz-transition: background-color 200ms ease-in-out; - -o-transition: background-color 200ms ease-in-out; - transition: background-color 200ms ease-in-out; -} -#WBCR .wio-doughnut-legend li span { - display: block; - position: absolute; - left: 0; - top: 0; - width: 25px; - height: 25px; - border-radius: 50%; -} -#WBCR .wio-optimize-button { - width: 180px; - padding: 12px 30px; - background: #c9deb2; - color: #586549; - border: 0; - box-shadow: none; - font-size: 14px; - text-transform: uppercase !important; - font-weight: bold; - border-radius: 4px; - outline: none; - text-decoration: none; -} -#WBCR .wio-optimize-button:active { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5); -} -#WBCR .wio-global-optim-phrase { - width: 180px; - padding-top: 20px; - font-size: 14px; - text-align: center; -} -#WBCR .wio-total-percent { - color: #587f2e; -} -#WBCR .wio-text-left { - text-align: left; -} -#WBCR span.wio-num { - display: inline !important; - position: inherit !important; -} -#WBCR .wio-image-optimize-board { - padding: 20px; -} -#WBCR .wio-page-statistic { - padding-left: 40px; -} -#WBCR .wio-page-statistic .wio-chart-percent { - margin-top: -1.1em; -} -#WBCR .wio-widget { - padding: 0 !important; -} -#WBCR .wio-widget .wio-chart-percent { - font-size: 44px; - line-height: 1; -} -#WBCR .wio-widget .wio-bars { - width: 80%; - margin-left: 155px; - box-sizing: border-box; -} -#WBCR .wio-widget .col-chart.col-chart { - width: 100%; -} -#WBCR .wio-widget .col-controls { - width: 45%; - padding-left: 5px; - padding-top: 110px; -} -#WBCR .wio-widget .wio-doughnut-legend { - margin-left: 20px; - text-align: left; -} -#WBCR .wio-widget .wio-widget-bottom { - display: table; - padding-top: 20px !important; - width: 100%; - text-align: right; -} -#WBCR .wio-widget .wio-widget-bottom li { - display: table-cell; -} -#WBCR .wio-widget .wio-widget-bottom li:first-child { - text-align: left; -} -@media (max-width: 830px) { - #WBCR .wio [class^="col-"] { - float: none; - margin-bottom: 1.5em; - } - #WBCR .wio .col-1-3, - #WBCR .wio .col-1-2 { - width: auto; - padding: 0 28px; - clear: both; - padding-top: 1em; - } -} -@keyframes wiohello { - 0%, - 100% { - background: #FFF; - } - 50% { - background: #F4F7F9; - } -} -@media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) { - #WBCR .wio-columns .col-statistics.col-statistics, - #WBCR .wio-columns .col-chart.col-chart { - width: 50%; - } -} -@media (max-width: 808px) { - #WBCR .wio-columns .col-statistics.col-statistics, - #WBCR .wio-columns .col-chart.col-chart { - width: auto; - float: none; - padding: 0; - } - #WBCR .wio-columns .col-chart.col-chart { - margin-top: 3em; - } -} -/*# sourceMappingURL=base-statistic.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/components.css b/wp-content/plugins/!clearfy/admin/assets/css/components.css deleted file mode 100644 index ff3a326d..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/components.css +++ /dev/null @@ -1,140 +0,0 @@ -/** - * Page components - * @author Alex Kovalev - * @copyright Alex Kovalev 30.09.2017 - */ -#WBCR .wbcr-clearfy-components { - padding: 0 20px 20px; - text-align: center; -} -#WBCR .wbcr-clearfy-components .plugin-card { - position: relative; - display: inline-block; - width: 32.7%; - height: 250px; - margin-left: 0; - margin-right: 0; - text-align: left; - float: none; - vertical-align: top; -} -#WBCR .wbcr-clearfy-components .plugin-card:first-child { - margin-left: 0; -} -#WBCR .wbcr-clearfy-components .plugin-card .plugin-card-bottom { - position: absolute; - bottom: 0; - right: 0; - left: 0; -} -#WBCR .wbcr-clearfy-components .plugin-card .plugin-card-top { - min-height: 163px; -} -#WBCR .wbcr-clearfy-components .plugin-card .desc, -#WBCR .wbcr-clearfy-components .plugin-card .name { - margin-right: 0 !important; -} -#WBCR .wbcr-clearfy-components .plugin-card .name h3 { - font-size: 17px; - margin-top: 0 !important; -} -#WBCR .wbcr-clearfy-components .plugin-card .install-now { - float: right; -} -#WBCR .wbcr-clearfy-components .plugin-card .delete-now { - float: right; - margin-left: 5px; -} -#WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons, -#WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons-before:before { - font-size: 16px !important; - line-height: 1.5 !important; - color: #62696f; -} -#WBCR .wbcr-clearfy-components .plugin-card a.open-plugin-details-modal { - color: #5c5d5f; - text-decoration: none; - font-weight: 600; - font-size: 15px; -} -#WBCR .wbcr-clearfy-components .plugin-card .plugin-card-premium-ribbon { - position: absolute; - bottom: 60px; - right: 0; - height: 30px; - width: 120px; - border-radius: 3px 0 0 3px; - background-color: #f7dea9; - color: #67532f; - text-align: center; - font-size: 12px; - font-weight: 600; - line-height: 2.4; - text-transform: uppercase; - z-index: 1; -} -#WBCR .wbcr-clearfy-components .plugin-card .plugin-card-free-ribbon { - position: absolute; - bottom: 60px; - right: 0; - height: 30px; - width: 120px; - border-radius: 3px 0 0 3px; - background-color: #cccccc; - color: #6b6b6b; - text-align: center; - font-size: 12px; - font-weight: 600; - line-height: 2.4; - text-transform: uppercase; - z-index: 1; -} -#WBCR .wbcr-clearfy-components .plugin-card .plugin-card-freemium-ribbon { - position: absolute; - bottom: 60px; - right: 0; - height: 30px; - width: 120px; - border-radius: 3px 0 0 3px; - background-color: #cae2b3; - color: #546742; - text-align: center; - font-size: 12px; - font-weight: 600; - line-height: 2.4; - text-transform: uppercase; - z-index: 1; -} -#WBCR .wbcr-clearfy-components .plugin-card.premium { - border-color: #e8d7b2; - background-color: #fff9eb; -} -#WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive { - background-color: #f1f1f1; -} -#WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal { - color: #ababab; - text-decoration: none; - font-weight: 600; - font-size: 15px; -} -#WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .plugin-icon { - opacity: 0.3; -} -#WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .desc { - color: #afafaf; -} -#WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive.premium { - background-color: #f9f2f1; -} -@media screen and (max-width: 1750px) { - #WBCR .wbcr-clearfy-components .plugin-card { - width: 49%; - } -} -@media screen and (max-width: 1350px) { - #WBCR .wbcr-clearfy-components .plugin-card { - width: 100%; - } -} -/*# sourceMappingURL=components.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/farewell-notice.css b/wp-content/plugins/!clearfy/admin/assets/css/farewell-notice.css deleted file mode 100644 index 1f1dac68..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/farewell-notice.css +++ /dev/null @@ -1,156 +0,0 @@ -/* Clearfy Farewell Notice Styles */ - -#try-super-page-cache-panel { - display: none; -} - -.try-super-page-cache-panel { - position: relative; - overflow: auto; - margin: 16px 0; - padding: 23px 10px 0; - border: 1px solid #e5e5e5; - box-shadow: 0 1px 1px rgba(0,0,0,0.04); - background: #fff; - font-size: 13px; - line-height: 2.1em; -} - -.try-super-page-cache-panel h2 { - margin: 0; - font-size: 21px; - font-weight: 400; - line-height: 1.2; -} - -.try-super-page-cache-panel h3 { - margin: 17px 0 0; - font-size: 16px; - line-height: 1.4; -} - -.try-super-page-cache-panel li { - font-size: 14px; -} - -.try-super-page-cache-panel p { - color: #72777c; -} - -.try-super-page-cache-action a { - text-decoration: none; -} - -.try-super-page-cache-panel .about-description { - font-size: 16px; - margin: 0; -} - -.try-super-page-cache-panel-content hr { - margin: 20px -23px 0 -23px; - border-top: 1px solid #f3f4f5; - border-bottom: none; -} - -.try-super-page-cache-panel .try-super-page-cache-panel-close { - position: absolute; - z-index: 10; - top: 10px; - right: 10px; - padding: 10px 15px 10px 21px; - font-size: 13px; - line-height: 1.23076923; - text-decoration: none; -} - -.try-super-page-cache-panel .try-super-page-cache-panel-close:before { - background: none; - color: #72777c; - content: "\f153"; - display: block; - font: normal 16px/20px dashicons; - speak: none; - height: 20px; - text-align: center; - width: 20px; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - position: absolute; - top: 8px; - left: 0; - transition: all .1s ease-in-out; -} - -.try-super-page-cache-panel-content { - margin: 0 13px; - max-width: 1500px; -} - -.try-super-page-cache-panel img { - margin-top: 23px; - width: calc( 100% - 40px ); - border: 1px solid #f3f4f5; -} - -.try-super-page-cache-panel .try-super-page-cache-panel-column > * { - padding-right: 40px; -} - -.try-super-page-cache-panel .try-super-page-cache-panel-column-container { - display: -ms-grid; - display: grid; - -ms-grid-columns: 36% 32% 32%; - grid-template-columns: 36% 32% 32%; - margin-bottom: 13px; -} - -.try-super-page-cache-panel .try-super-page-cache-panel-column:not(.try-super-page-cache-panel-image-column) { - display: -ms-grid; - display: grid; - -ms-grid-rows: auto 100px; - grid-template-rows: auto 100px; -} - -.try-super-page-cache-panel-column p { - margin-top: 7px; - color: #444; -} - -/* Responsive Design */ - -@media screen and (max-width: 1024px) { - .try-super-page-cache-panel .try-super-page-cache-panel-column-container { - -ms-grid-columns: 50% 50%; - grid-template-columns: 50% 50%; - } - - .try-super-page-cache-panel .try-super-page-cache-panel-image-column { - display: none; - } -} - -@media screen and (max-width: 870px) { - .try-super-page-cache-panel .try-super-page-cache-panel-column-container { - -ms-grid-columns: 100%; - grid-template-columns: 100%; - } -} - -@media screen and (max-width: 600px) { - .try-super-page-cache-panel .try-super-page-cache-panel-close { - overflow: hidden; - text-indent: 40px; - white-space: nowrap; - width: 20px; - height: 20px; - padding: 5px; - top: 5px; - right: 5px; - } - - .try-super-page-cache-panel .try-super-page-cache-panel-close:before { - font-size: 20px; - top: 5px; - left: -35px; - } -} diff --git a/wp-content/plugins/!clearfy/admin/assets/css/general.css b/wp-content/plugins/!clearfy/admin/assets/css/general.css deleted file mode 100644 index b64209b9..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/general.css +++ /dev/null @@ -1,717 +0,0 @@ -/** - * General styles - * @author Alex Kovalev - * @copyright Alex Kovalev 23.08.2017 - */ -.wbcr-clearfy-layer { - display: none; - position: absolute; - top: 0; - left: -20px; - right: 0; - bottom: 0; - background: rgba(255, 235, 59, 0.18); - z-index: 9; -} -#WBCR { - /*.wbcr-right-sidebar-section { - width: 49%; - padding-top: 20px; - }*/ - /** - * Widgets - */ - /** - * Navigation bar - */ - /*.wbcr-clearfy-board { - background: #f9f8f8; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1); - padding: 20px; - margin-bottom: 20px; - min-width: 350px; - //float: right; - }*/ -} -#WBCR .wbcr-factory-pages-480-impressive-page-template .wbcr-factory-page-header { - height: 80px !important; -} -#WBCR .wbcr-factory-pages-480-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo span { - display: inline-block !important; -} -#WBCR .row { - display: block !important; - width: auto !important; - table-layout: auto !important; -} -#WBCR .row > div { - display: block !important; - padding: 0 !important; -} -#WBCR .wbcr-clr-logo-label { - position: relative; - padding: 0 10px 3px; - border-radius: 5px; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - border-top: 1px solid rgba(255, 255, 255, 0.2); -} -#WBCR .wbcr-clr-logo-label:before { - content: ''; - display: block; - position: absolute; - width: 20px; - height: 25px; - top: -10px; - right: -10px; - background: url(../../../assets/img/webcraftic-plugin-icon.png) 0 0 no-repeat; -} -#WBCR .wbcr-clr-logo-label.wbcr-clr-free-label-logo { - color: #f1f1f1; - background-color: #636363; -} -#WBCR .wbcr-clr-logo-label.wbcr-clr-premium-label-logo { - color: #000000; - background-color: #ffbe00; -} -#WBCR .wbcr-content-section, -#WBCR .wbcr-right-sidebar-section { - display: inline-block; - vertical-align: top; -} -#WBCR .wbcr-content-section { - width: 100%; -} -#WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium { - position: relative; - text-decoration: none; - font-weight: bold; - background: #fffaea; - padding: 0; - border-radius: 4px; - outline: none; - margin-top: 15px; - box-shadow: 0 0 8px #fddf67; -} -#WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium .fa { - position: relative; - margin-right: 3px; - margin-left: 3px; -} -#WBCR .wbcr-factory-left-navigation-bar #components-wbcr_clearfy-tab { - border-left: 5px solid #7edbff; -} -#WBCR .wbcr-factory-left-navigation-bar #license-wbcr_clearfy-tab { - border-left: 5px solid #ffd762; -} -#WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab { - font-weight: lighter; - color: #222; -} -#WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab .dashicons-admin-network { - color: #222; -} -#WBCR .wbcr-clearfy-danger-message { - position: relative; - padding: 15px; - background: #ffe0de; - color: #9c6e6e; - border-radius: 3px; -} -#WBCR .wbcr-clearfy-danger-message:after, -#WBCR .wbcr-clearfy-danger-message:before { - bottom: 100%; - left: 20px; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; -} -#WBCR .wbcr-clearfy-danger-message:after { - border-color: rgba(136, 183, 213, 0); - border-bottom-color: #ffe0de; - border-width: 10px; -} -#WBCR .wbcr-clearfy-danger-message:before { - border-color: rgba(194, 225, 245, 0); - border-bottom-color: #ffe0de; - border-width: 10px; -} -#WBCR .wbcr-clearfy-group-header { - background: #efefef; - padding: 20px 0 10px 20px; - margin: 30px 0; - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); -} -#WBCR .wbcr-clearfy-group-header:first-child { - margin-top: 0; -} -#WBCR .wbcr-clearfy-group-header strong { - font-size: 15px; -} -#WBCR .wbcr-clearfy-group-header p { - color: #8c8888; - font-size: 12px; -} -#WBCR .factory-more-link-content { - padding-top: 10px; - background: #fbfafa; -} -#WBCR .factory-more-link-hide { - display: block; - position: relative; - margin-left: 25px; - margin-bottom: 30px; - color: rgb(255 69 0); -} -#WBCR .factory-more-link-hide:before { - content: ''; - position: absolute; - width: 0; - left: -15px; - top: 6px; - height: 0; - border-style: solid; - border-width: 0 5px 8px 5px; - border-color: transparent transparent #ff4500 transparent; -} -#WBCR #wbcr-clearfy-quick-mode-board h4 { - margin-top: 30px; -} -#WBCR .wbcr-clearfy-switch-success-message, -#WBCR .wbcr-clearfy-switch-error-message { - display: none; - padding: 15px 20px; - font-size: 13px; - font-weight: bold; - margin: 0 0 15px; - border-radius: 4px; -} -#WBCR .wbcr-clearfy-switch-success-message { - background: #e5f9ce; - border-bottom: 3px solid #d3eab9; - color: #56614a; -} -#WBCR .wbcr-clearfy-switch-error-message { - background: #fdc6c2; - border-bottom: 3px solid #e2a19c; - color: #bd6963; -} -#WBCR .wbcr-clearfy-troubleshooting { - padding: 0 50px 20px; -} -#WBCR .wbcr-clearfy-export-import { - padding: 0 50px; - text-align: right; -} -#WBCR .wbcr-clearfy-export-import label { - display: block; - width: 100%; - text-align: left; - padding: 7px 0; -} -#WBCR .wbcr-clearfy-export-import #wbcr-clearfy-import-export { - width: 100%; - box-sizing: border-box; - height: 200px; - line-height: inherit; - margin: 0; - padding: 7px 14px; - box-shadow: none; - border-radius: 3px; - border: 1px solid #eee; - border-top-color: #dedede; - background-color: #f1f1f1; - color: #444; - transition: border-color 0.3s; - -webkit-appearance: none; -} -#WBCR .wbcr-clearfy-export-import .wbcr-clearfy-import-options-button { - display: inline-block; - margin-top: 10px; -} -#WBCR .wbcr-clearfy-confirm-popup { - display: none; - position: fixed; - top: 50%; - left: 50%; - width: 500px; - height: 400px; - margin: -200px 0 0 -250px; - padding: 20px; - background: rgba(255, 255, 255, 0.82); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); - border: 4px solid rgba(216, 210, 171, 0.44); - z-index: 99; -} -#WBCR .wbcr-clearfy-confirm-popup h3 { - font-size: 17px; - text-align: center; - font-weight: bold; - margin: 5px 0 0; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-reset-warning-message { - display: none; - text-align: center; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-list-options { - display: none; - height: 230px; - overflow-y: auto; - overflow-x: hidden; - padding-left: 40px; - list-style: decimal; - margin: 20px 0; -} -#WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-default-warning-options .wbcr-clearfy-list-options { - display: block; -} -#WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options { - height: 200px; - margin: -100px 0 0 -250px; -} -#WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options .wbcr-clearfy-reset-warning-message { - display: block; - margin: 10px 0; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons { - text-align: center; - padding: 10px; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button { - display: inline-block; - padding: 7px 25px; - box-shadow: none; - border: 0; - font-weight: bold; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button, -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button:focus { - outline: 0 !important; - box-shadow: none !important; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-popup-button-ok { - background: #FFEB3B; - color: #564f0d; -} -#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-cancel-mode { - background: #d6d6d6; - color: #5f5d5d; -} -#WBCR #wbcr-clearfy-quick-mode-board { - padding: 20px; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch { - position: relative; - padding: 15px 20px; - margin-right: 20px; - font-size: 12px; - text-transform: uppercase; - background: #f1f1f1; - color: #6d6d6d; - font-weight: bold; - border-radius: 5px; - margin-top: 10px; - text-align: left; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; - /*&.wbcr-clearfy-mode-reset:hover { - & .wbcr-clearfy-button-activate-mode { - background-color: #fb7976; - color: darken(#fb7976, 50%); - &:hover { - background-color: lighten(#fb7976, 3%); - } - } - }*/ -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch:after { - display: block; - clear: both; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa, -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons { - font-size: 25px; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa, -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons, -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span { - display: inline-block !important; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span { - margin-left: 15px; - margin-top: 3px; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active { - /*.fa, .dashicons:before { - color: #8bc34a; - } - & .wbcr-clearfy-button-activate-mode { - display: none !important; - } - & .wbcr-clearfy-button-deativate-mode { - display: inline-block !important; - }*/ -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active .wbcr-clearfy-button-activate-mode { - background-color: #f7f7f7 !important; - color: #e0e0e0 !important; - cursor: default; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation { - width: 130px; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode { - width: 130px; - background-color: #fdd599; - color: #a57b3c; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode:hover { - background-color: #fddba8; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .fa, -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .dashicons:before { - color: #8bc34a; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode { - background-color: #c9deb2; - color: #586549; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode:hover { - background-color: #d1e3bd; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-loading .wbcr-clearfy-switch-confirmation button { - background: url("../img/quick-start-loader.gif") center center no-repeat; - background-color: #f7f7f7 !important; - font-size: 0; - cursor: default !important; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation { - position: absolute; - top: 0; - right: 20px; - bottom: 0; - width: 100px; - text-align: right; - -webkit-transition: all 0.3s ease-out; - -moz-transition: all 0.3s ease-out; - -o-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button { - display: inline-block; - width: 100px; - margin: 12px 0 0; - border: 0; - box-shadow: none; - padding: 5px 10px; - font-weight: bold; - font-size: 13px; - border-radius: 3px; - outline: none; - background-color: #dedede; - color: #808080; - /*&.wbcr-clearfy-button-activate-mode { - background-color: #c9deb2; - color: #586549; - &:hover { - background-color: lighten(#c9deb2, 3%); - } - } - &.wbcr-clearfy-button-deativate-mode { - display: none; - background-color: #fdd599; - color: #a57b3c; - margin-right: 0; - &:hover { - background-color: lighten(#fdd599, 3%); - } - }*/ -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:hover { - background-color: #d6d6d6; -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:active { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5); -} -#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-wizard { - width: 100px; - background-color: #8bc34a; - color: #ffffff; - margin-top: 10px; -} -#WBCR .wclearfy-quick-start { - display: flex; - /*.wclearfy-gogle-page-speed-audit__errors { - display: none; - padding: 15px; - background: #fddfdf; - }*/ - /*&__g-audit-start-button { - position: absolute; - display: block; - top: 50%; - left: 50%; - //padding: 15px 40px; - line-height: 4.3; - height: 50px; - width: 200px; - margin: -25px 0 0 -100px; - font-size: 12px; - text-transform: uppercase; - text-decoration: none; - text-align: center; - color: #a57b3c; - background-color: #fdd599; - font-weight: bold; - border-radius: 5px; - margin-top: 10px; - box-shadow: 0 1px 1px rgb(0 0 0%); - }*/ -} -#WBCR .wclearfy-quick-start__left-column, -#WBCR .wclearfy-quick-start__right-column { - text-align: center; - padding: 15px; - box-sizing: border-box; - width: 25%; - display: flex; - flex-wrap: nowrap; -} -#WBCR .wclearfy-quick-start__left-column ul { - margin: 0 auto; -} -#WBCR .wclearfy-quick-start__left-column ul .wclearfy-quick-start__license-details { - text-align: left; - padding: 15px 15px 15px 0; -} -#WBCR .wclearfy-quick-start__left-column ul .wclearfy-quick-start__license-details-inner-wrap { - border-radius: 5px; - background: #efefef; - padding: 15px; -} -#WBCR .wclearfy-quick-start__right-column { - width: 75%; -} -#WBCR .wclearfy-quick-start__button { - display: block; - padding: 15px 40px; - margin-right: 20px; - font-size: 12px; - text-transform: uppercase; - text-decoration: none; - background: #eeeeee; - text-align: center; - color: #6d6d6d; - font-weight: bold; - border-radius: 5px; - margin-top: 10px; - box-shadow: 0 1px 1px rgb(0 0 0%); -} -#WBCR .wclearfy-quick-start__button:hover { - background: #f1f1f1; -} -#WBCR .wclearfy-quick-start__button--green { - color: #586549; - background-color: #c9deb2; -} -#WBCR .wclearfy-quick-start__button--green:hover { - background-color: #d1e3bd; -} -#WBCR .wclearfy-quick-start__button--orange { - color: #a57b3c; - background-color: #fdd599; -} -#WBCR .wclearfy-quick-start__button--orange:hover { - background-color: #fddba8; -} -#WBCR .wclearfy-quick-start__google-page-speed-preloader { - display: block; - width: 100%; - height: 100px; - background: url("../img/setup-preloader-124x124.gif") center no-repeat; -} -#WBCR .wclearfy-quick-start__g-audit { - position: relative; - width: 100%; - background: #ffffff; - margin: 10px 5px; - border-radius: 5px; -} -#WBCR .wclearfy-quick-start__g-audit a { - outline: 0; - text-decoration: none; -} -#WBCR .wclearfy-quick-start__g-audit-after-h2 { - font-size: 18px; - color: #87a76e; -} -#WBCR .wclearfy-quick-start__g-audit-before-h2 { - font-size: 18px; - color: #e49d7f; -} -#WBCR .wclearfy-quick-start__g-audit-score { - padding: 20px; - text-align: center; -} -#WBCR .wclearfy-quick-start__g-audit-desktop-score, -#WBCR .wclearfy-quick-start__g-audit-mobile-score { - display: inline-block; - width: 150px; - padding-left: 20px; - padding-right: 20px; -} -#WBCR .wclearfy-quick-start__g-audit-desktop-score h3, -#WBCR .wclearfy-quick-start__g-audit-mobile-score h3 { - font-size: 16px; -} -#WBCR .wclearfy-quick-start__g-audit-score-circle { - position: relative; - margin: 0 auto; -} -#WBCR .wclearfy-quick-start__g-audit-warging-text { - z-index: 2; - vertical-align: middle; -} -#WBCR .wclearfy-quick-start__g-audit-warging-text span { - display: block; - margin-top: 200px; - padding: 20px; -} -#WBCR .wclearfy-quick-start__g-audit-preloader, -#WBCR .wclearfy-quick-start__g-audit-overlay, -#WBCR .wclearfy-quick-start__g-audit-warging-text { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -#WBCR .wclearfy-quick-start__g-audit-preloader { - background: url("../img/g-audit-preloader2.gif") center no-repeat; - z-index: 3; -} -#WBCR .wclearfy-quick-start__g-audit-overlay { - background: rgba(255, 255, 255, 0.9); - z-index: 1; - text-align: center; -} -#WBCR .wclearfy-quick-start .wclearfy-status-circle-text { - position: absolute; - left: 50%; - top: 50%; - padding: 0; - margin: 0; - transform: translate(-50%, -50%); - color: #aaa; - font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 1.3125rem; - font-weight: 300; - line-height: 1.5; -} -#WBCR .wclearfy-quick-start .wclearfy-score-circle .wclearfy-status-overlay-text { - position: absolute; - left: 50%; - top: 50%; - padding: 0; - margin: 0; - width: 200%; - text-align: center; - transform: translate(-50%, -50%); - font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 0.875rem; - font-weight: normal; - line-height: 1.3125; - opacity: 0; - color: #777; -} -#WBCR .wclearfy-quick-start__g-audit-statistic { - padding: 10px; - font-family: Roboto, Helvetica, Arial, sans-serif; - font-size: 14px; -} -#WBCR .wclearfy-quick-start__g-audit-statistic-line { - border-bottom: 1px solid #ebebeb; - display: flex; - justify-content: space-between; - padding: 8px; -} -#WBCR .wclearfy-quick-start__g-audit-statistic-results { - padding-right: 5px; - font-weight: bold; -} -#WBCR .wclearfy-quick-start-docs { - display: flex; -} -#WBCR .wclearfy-quick-start-docs__column { - text-align: center; - padding: 0 15px 15px 15px; - box-sizing: border-box; - width: 33.3333%; - display: flex; - flex-wrap: nowrap; -} -#WBCR .wclearfy-quick-start-docs__column-inner-wrap { - width: 100%; - padding: 15px; - box-sizing: border-box; - background: #eeeeee; -} -#WBCR .wclearfy-quick-start-docs__column-inner-wrap ul { - margin: 0; - padding-left: 20px; -} -#WBCR .wclearfy-quick-start-docs__column-inner-wrap ul li { - text-align: left; - list-style: square; -} -#WBCR .wclearfy-quick-start-docs__column-inner-wrap ul li a { - color: #a8a8a8; -} -#WBCR .wclearfy-quick-start-docs__column-inner-wrap ul li a:hover { - color: #979696; -} -#WBCR .wbcr-factory-page-quick_start #wbcr-factory-templates-134__autocomplete { - width: 100%; - padding: 15px; - border-radius: 4px; - font-size: 20px; - box-sizing: border-box; - border-color: #d6d4d4; -} -@media screen and (max-width: 1380px) { - #WBCR #wbcr-clearfy-quick-mode-board { - min-width: 450px; - padding-right: 0; - } - #WBCR .wbcr-content-section, - #WBCR .wbcr-right-sidebar-section { - width: 100%; - } - #WBCR .wbcr-clearfy-export-import-board { - margin-top: 20px; - } -} -@media screen and (max-width: 950px) { - #WBCR #wbcr-clearfy-quick-mode-board { - min-width: 100%; - } - #WBCR .wbcr-content-section, - #WBCR .wbcr-right-sidebar-section { - width: 100%; - } - #WBCR .wbcr-clearfy-board { - width: 100%; - min-width: 100%; - } -} -@media screen and (max-width: 550px) { - #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span { - font-size: 0 !important; - } -} -/*# sourceMappingURL=general.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/gutenberg-autosave-control.css b/wp-content/plugins/!clearfy/admin/assets/css/gutenberg-autosave-control.css deleted file mode 100644 index 67de6158..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/gutenberg-autosave-control.css +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Gutenber autosave control styles - - * @author Webcraftic - * @copyright (c) 10.12.2018, Webcraftic - * @version 1.0 - * - * Credits: - * This code was used from the plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/ - * Author websevendev - */ -h2.disable-gutenberg-autosave-header { - margin: 0; -} -p.disable-gutenberg-autosave-error { - color: red; - font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace; -} -/*# sourceMappingURL=gutenberg-autosave-control.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/install-addons.css b/wp-content/plugins/!clearfy/admin/assets/css/install-addons.css deleted file mode 100644 index f5be33c9..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/install-addons.css +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Install addons global styles - * @author Webcraftic - * @copyright Webcraftic 11.07.2018 - */ -.wbcr-clr-new-component { - background: #f7f7f7; - border: 1px solid #eaeaea; - padding: 5px 20px; - margin-bottom: 10px; -} -.wbcr-clr-new-component h4 { - margin: 5px 0; - display: inline-block; -} -.wbcr-clr-new-component .wbcr-clr-proccess-button { - display: inline-block; - margin: 5px 0; -} -.wbcr-clr-new-component.wbcr-clr-premium { - background: #fff6db; - border: 1px solid #e4dea9; -} -.wbcr-clr-new-component.wbcr-clr-premium h4 { - color: #88690c; -} -.wbcr-clr-proccess-button.button-link, -.wbcr-clr-proccess-button.button-link:focus { - outline: none !important; - box-shadow: none !important; -} -/*# sourceMappingURL=install-addons.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/license-manager.css b/wp-content/plugins/!clearfy/admin/assets/css/license-manager.css deleted file mode 100644 index b5a28508..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/license-manager.css +++ /dev/null @@ -1,659 +0,0 @@ - -.not-visible-in-manager { - display: none; -} - -/** -* Global License Message -*/ -.global-license-message { - width: 600px; - margin: auto; - /*margin-top: 100px;*/ - font-size: 14px; - line-height: 170%; -} - -.global-license-message h2, .global-license-message h3 { - padding: 0px; - margin: 5px 0; -} - -.onp-page-wrap { - max-width: 720px; - margin: auto; - margin-top: 40px; - font-size: 14px; - line-height: 170%; -} - -.onp-container { - border: 0px; - padding: 0px; - border-radius: 5px; - background: rgb(255, 255, 255) !important; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -#license-manager .onp-container { - background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */ -} - -.onp-container h2 { - margin: 0px; - padding: 0px; -} - -.onp-container p { - margin: 0 0 2px 0; - padding: 0px; - line-height: 170%; -} - -.btn-uppercase { - font-size: 12px; - letter-spacing: 1px; - text-transform: uppercase; - text-decoration: none; -} - -.btn-uppercase *[class^=icon] { - position: relative; - top: -1px; - left: -1px; -} - -.onp-page-wrap .license-message { - margin-bottom: 20px; - overflow: hidden; -} - -.onp-page-wrap .license-message .alert { - margin: 0px; -} - -.onp-page-wrap .license-message strong { - display: block; - margin-bottom: 0px; -} - -.onp-page-wrap .license-message p { - margin: 1px 0 1px 0; - padding: 0px; -} - -.onp-page-wrap .license-message a { - font-weight: bold; -} - -.license-message .alert-warning-icon { - padding-left: 60px; - background-image: url("../img/warning.png"); - background-position: 15px 11px; - background-repeat: no-repeat; -} - -#onp-hide-license-manager { - position: absolute; - top: 2px; - right: 15px; - font-size: 12px; - color: #777; - font-weight: bold; -} - -#onp-hide-license-manager:hover { - text-decoration: none; -} - -#onp-hide-license-manager, -#onp-hide-license-manager:focus, -#onp-hide-license-manager:hover { - outline: none; - border: 0px; - box-shadow: none; -} - -#onp-hide-license-manager .fa { - margin-right: 5px; -} - -#license-manager .license-details-wrap { - border: 1px solid #e9e9e9; - padding: 0px; - border-radius: 5px; - - background: rgb(255, 255, 255); /* Old browsers */ - background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */ - - box-shadow: 0px 2px 1px #c9c9c9; -} - -#license-manager .activate-trial-hint { - background-color: #f8f8f8; - padding: 10px 20px; - position: relative; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -#license-manager .activate-error-hint { - background-color: #fb7976; - color: #f5f5f5; - text-shadow: none; - padding: 2px 9px; - width: 100%; - position: relative; - margin-left: -9px; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -#license-manager .license-details { - padding: 20px; - padding-bottom: 0px; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - - position: relative; - z-index: 10; -} - -#license-manager .license-key-identity { - font-style: italic; - position: relative; - top: -6px; -} - -#license-manager .license-key-identity code { - display: inline-block; - padding:2px 5px; - font-size: 16px; -} - -#license-manager .license-key-description { - font-size: 12px; -} - -#license-manager .license-delete-button { - float: right; - text-decoration: none; - position: relative; - top: -7px; - left: 10px; -} - -#license-manager .license-synchronization-button { - float: right; - text-decoration: none; - position: relative; - top: -7px; - left: 5px; -} - -#license-manager .license-details-block { - padding: 28px 35px 15px 35px; - margin-left: -35px; - width: 100%; - position: relative; - margin-top: 20px; - - background: #fff; - border: 0px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); - color: #333; - - border-radius: 5px; - - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -#license-manager .license-details-block p + p { - margin-top: 10px; -} - -#license-manager .license-details-block a { - font-weight: bold; -} - -#license-manager .license-details-block.trial-details-block { - background: #ffdede; - - border: 0; - box-shadow: 0 0 7px #cf4944; - color: #a04342; - text-shadow: 1px 1px 2px #fff2f2; -} - -#license-manager .license-details-block.trial-details-block a { - color: #a04342; -} - -#license-manager .license-details-block.paid-details-block { - border: 0; - box-shadow: 0 0 7px #b8823b; - color: #8a6d3b; - background: #fcf8e3; -} - -#license-manager .license-details-block.paid-details-block a { - color: #7a4c00; -} - -#license-manager .license-details-block.gift-details-block { - background: #DFF0D8; - border: 1px solid #D6E9C6; - box-shadow: 0px 0px 5px #D6E9C6; - color: #468847; -} - -#license-manager .license-details-block.gift-details-block a { - color: #468847; -} - -#license-manager .license-params { - margin-top: 15px; - position: relative; - left: -2px; -} - -#license-manager .license-value { - display: block; - font-size: 16px; - font-weight: bold; -} - -#license-manager .license-value small { - font-weight: normal; -} - -#license-manager .license-value-name { - display: block; - font-size: 12px; -} - -#license-manager .license-param { - white-space: nowrap; - line-height: 130%; - padding: 10px 0 10px 35px; - vertical-align: top; -} - -#license-manager .license-param-domain { - padding-left: 65px; - background: url('../img/free-license-chip.png') -3px 0px no-repeat; -} - -#license-manager .trial-details-block .license-param-domain { - background: url('../img/trial-license-chip.png') -3px 0px no-repeat; -} - -#license-manager .paid-details-block .license-param-domain { - background: url('../img/paid-license-chip.png') -3px 0px no-repeat; -} - -#license-manager .license-details-block h3 { - margin: 0px; - padding: 0px; - font-size: 22px; - margin-bottom: 10px; -} - -#license-manager .license-details-block a { - color: #a04342; -} - -#license-manager .license-input { - - padding: 20px; - -webkit-border-bottom-right-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomright: 5px; - -moz-border-radius-bottomleft: 5px; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; -} - -#license-manager .license-input .btn { - text-decoration: none; -} - -#license-manager .license-key-wrap { - padding-right: 110px; -} - -#license-key { - width: 100%; - position: relative; - font-size: 18px; - line-height: 20px; - position: relative; - top: -1px; - height: 36px; - color: #000; -} - -#license-submit { - float: right; - padding: 7px 14px 6px 14px; -} - -#plugin-update-block { - padding-top: 10px; - font-size: 10px; - color: #666; - max-width: 700px; - margin: auto; -} - -#plugin-update-block a { - color: #000; -} - -.purchase-premium { - float: right; - position: relative; - top: -11px; - left: 8px; - text-decoration: none; - font-weight: bold; - background: #fffaea; - padding: 0px; - border-radius: 4px; - outline: none; - margin-top: 4px; - box-shadow: 0 0 8px #fddf67; -} - -.purchase-premium .fa { - position: relative; - margin-right: 3px; - margin-left: 3px; -} - -/* -* Manual Trial Activation -*/ -#trial-manual .onp-container { - padding: 20px; - overflow: hidden; -} - -#trial-manual ul { - margin: 0px; - padding: 0px; - margin-top: 10px; -} - -#trial-manual ul li { - margin-bottom: 10px; -} - -#trial-manual .license-reponse-code { - width: 100%; - height: 150px; - margin-top: 5px; -} - -/* -* Manual Key Activation -*/ -#activate-key-manual .onp-container { - padding: 20px; - overflow: hidden; -} - -#activate-key-manual ul { - margin: 0px; - padding: 0px; - margin-top: 10px; -} - -#activate-key-manual ul li { - margin-bottom: 10px; -} - -#activate-key-manual .license-reponse-code { - width: 100%; - height: 150px; - margin-top: 5px; -} - -/** -* FAQ -*/ - -#faq-block { - border-top: 1px solid #d7d7d7; - - margin-top: 20px; - width: 100%; - - padding: 10px 20px; - position: relative; -} - -#faq-block .faq-header { - border-bottom: 1px dotted #333; - display: inline-block; - cursor: pointer; - font-weight: bold; - line-height: 16px; - font-size: 13px; - color: #333; -} - -#faq-block .faq-header:hover { - border-bottom: 0px; -} - -#faq-block .faq-header:focus, #faq-block .faq-header:active { - outline: 0; -} - -#faq-block li > div { - display: none; -} - -#faq-block p { - margin: 6px 0 10px 0; - font-size: 13px; - line-height: 170%; -} - -#open-faq { - color: #000 !important; - text-decoration: none; - border-bottom: 1px dotted #000; - margin-left: 4px; -} - -#open-faq:hover { - border-bottom: 0px; -} - -.gray-link, .gray-link a { - color: #666666 !important; -} - -/** -* A form to create a customer account -*/ - -.onp-single-block .onp-header { - text-align: center; - padding: 10px; -} - -.onp-single-block .onp-header h4 { - font-size: 26px; - line-height: 130%; -} - -.onp-single-block .onp-container { - padding: 50px 60px; - border: 1px solid #bbb; - position: relative; -} - -.onp-single-block .onp-container .onp-container-header { - margin-bottom: 20px; -} - -.onp-single-block .onp-container .onp-container-header h4 { - color: #000; - margin: 0px; - font-size: 20px; -} - -.onp-single-block .onp-container .onp-container-header .onp-key-info { - color: #666; -} - -.onp-single-block .onp-container .onp-container-header .onp-key-info .fa { - color: #777; -} - -.onp-single-block .onp-container .onp-container-header .onp-icon { - position: absolute; - top: 30px; - right: 30px; -} - -.onp-single-block .onp-container p, -.onp-single-block .onp-container li { - color: #333; - font-size: 14px; -} - -.onp-single-block .onp-container p + p { - margin-top: 15px; -} - -.onp-single-block .onp-container .onp-form { - text-align: left; - padding: 10px 0 0 0; -} - -.onp-single-block #email { - font-size: 26px; - line-height: 26px; - height: 50px; -} - -.onp-single-block .checkbox { - padding-left: 25px; - color: #999; - font-style: italic; -} - -.onp-single-block .checkbox input { - margin-left: -25px; -} - -.onp-single-block .onp-actions { - padding-top: 20px; -} - -.onp-single-block .onp-actions .btn-primary { - margin-right: 15px; -} - -.onp-single-block .onp-actions a.onp-cancel { - text-decoration: none; - color: #111; -} - -.onp-single-block .onp-actions a.onp-cancel:hover { - text-decoration: none; - border-bottom: 1px solid #111; - background-color: #f9f9f9; -} - -.onp-single-block .onp-benefits { - padding-left: 25px; - margin-top: 15px; - list-style: initial; -} - -.onp-single-block .onp-login-details { - -} - -.onp-single-block .onp-text-seporator { - border-top: 1px solid #eee; - margin: 30px 0; -} - -#create-account .onp-container { - background: #fff url("../img/create-account-bg.png") no-repeat 370px 230px !important; -} - -#account-created .onp-step { - overflow: hidden; -} - -#account-created .onp-steps { - padding: 25px 0 20px 10px; -} - -#account-created .onp-step + .onp-step { - margin-top: 20px; -} - -#account-created .onp-step .onp-num { - font-size: 25px; - line-height: 40px; - background-color: #f5f5f5; - width: 40px; - height: 40px; - display: inline-block; - border-radius: 7px; - text-align: center; - -moz-box-sizing: border-box; - box-sizing: border-box; - margin-right: 10px; - vertical-align: middle; - font-weight: bolder; - font-family: Arial, sans-serif; -} - -#account-created .onp-step .onp-desc { - width: 490px; - display: inline-block; - vertical-align: middle; - line-height: 150%; -} - -#finish .onp-container { - background: #fff url("../img/finish.png") no-repeat 0 -90px !important; - padding-left: 260px; - min-height: 250px; - - border-bottom: 3px solid #ccc; -} - -.wcl-loader { - float: right; - width: 32px; -} diff --git a/wp-content/plugins/!clearfy/admin/assets/css/setup/page-setup.css b/wp-content/plugins/!clearfy/admin/assets/css/setup/page-setup.css deleted file mode 100644 index ec94b4a4..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/setup/page-setup.css +++ /dev/null @@ -1,100 +0,0 @@ -.wclearfy-setup__color--red > .dashicons { - color: #ff1c40; -} -.wclearfy-setup__color--green > .dashicons { - color: #1fa21f; -} -.wclearfy-setup__install-component-button { - background-color: #ff1c40 !important; - border-color: #ff1c40 !important; - color: white !important; - text-transform: uppercase !important; - border-radius: 5px !important; - padding: 10px 30px !important; - text-decoration: none !important; -} -.wclearfy-setup__install-component-button:link, -.wclearfy-setup__install-component-button:active { - text-decoration: none !important; -} -.wclearfy-setup__install-component-button:hover { - color: #f3f4ef; -} -.wbcr-clearfy-danger-message { - position: relative; - padding: 15px; - background: #ffe0de; - color: #9c6e6e; - border-radius: 3px; -} -.wclearfy-gogle-page-speed-audit__preloader { - display: block; - width: 100%; - height: 100px; - background: url("../../img/setup-preloader-124x124.gif") center no-repeat; -} -.wclearfy-gogle-page-speed-audit__errors { - display: none; - padding: 15px; - background: #fddfdf; -} -.wclearfy-score { - padding: 20px; - text-align: center; -} -.wclearfy-desktop-score, -.wclearfy-mobile-score { - display: inline-block; - width: 150px; - padding-left: 20px; - padding-right: 20px; -} -.wclearfy-score-circle { - position: relative; - margin: 0 auto; -} -.wclearfy-status-circle-text { - position: absolute; - left: 50%; - top: 50%; - padding: 0; - margin: 0; - transform: translate(-50%, -50%); - color: #aaa; - font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 1.3125rem; - font-weight: 300; - line-height: 1.5; -} -.wclearfy-score-circle .wclearfy-status-overlay-text { - position: absolute; - left: 50%; - top: 50%; - padding: 0; - margin: 0; - width: 200%; - text-align: center; - transform: translate(-50%, -50%); - font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 0.875rem; - font-weight: normal; - line-height: 1.3125; - opacity: 0; - color: #777; -} -.wclearfy-statistic { - padding: 10px; - font-family: Roboto, Helvetica, Arial, sans-serif; - font-size: 14px; -} -.wclearfy-statistic .wclearfy-statistic__line { - border-bottom: 1px solid #ebebeb; - display: flex; - justify-content: space-between; - padding: 8px; -} -.wclearfy-statistic .wclearfy-statistic__results { - padding-right: 5px; - font-weight: bold; -} -/*# sourceMappingURL=page-setup.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/css/setup/step-optimize-images.css b/wp-content/plugins/!clearfy/admin/assets/css/setup/step-optimize-images.css deleted file mode 100644 index e97e51b5..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/css/setup/step-optimize-images.css +++ /dev/null @@ -1,674 +0,0 @@ -/** - * Styles for the Widget to be displayed in the Clearfy plugin - - * @author Alex Kovalev - * @copyright Webcraftic 14.06.2019 - */ -.wio-clear { - clear: both; -} -#io_folders_statistic-wbcr_clearfy-tab, -#io_nextgen_gallery_statistic-wbcr_clearfy-tab { - display: none !important; -} -.wrio-statistic-nav { - margin: 0; - background: #efefef; -} -.wrio-statistic-nav ul { - margin: 0; -} -.wrio-statistic-nav ul li { - position: relative; - display: inline-block; - margin: 0 0 0 0; - background: #ffffff; - box-shadow: 0 -2px 0 #eaeaea; -} -.wrio-statistic-nav ul li:hover { - background: #f7f7f7; -} -.wrio-statistic-nav ul li.active { - background: #f7f7f7; - border-top: 1px solid #d4d4d4; - border-left: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - border-bottom: 1px solid #f7f7f7; - margin-bottom: -1px; -} -.wrio-statistic-nav ul li.active a { - color: #222; -} -.wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent { - border: 2px dashed #8bc34a; - color: #5e8237; -} -.wrio-statistic-nav ul li.active .dashicons, -.wrio-statistic-nav ul li.active .dashicons-before:before { - color: #ff8b66; -} -.wrio-statistic-nav ul li .wrio-statistic-tab { - display: block; - padding: 10px 20px 10px 20px; - text-decoration: none; - color: #d4d4d4; - font-size: 22px; - line-height: 2; -} -.wrio-statistic-nav ul li .wrio-statistic-tab:active, -.wrio-statistic-nav ul li .wrio-statistic-tab:focus { - background: 0; - box-shadow: none; - outline: none; -} -.wrio-statistic-nav ul li .wrio-statistic-tab .dashicons, -.wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before { - display: inline-block; - width: 30px; - height: 30px; - font-size: 30px; - line-height: 1.5; - margin-right: 15px; - color: #d4d4d4; -} -.wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent { - display: inline-block; - width: 42px; - height: 42px; - border-radius: 100px; - border: 2px dashed #e4e4e4; - padding: 5px; - margin-left: 30px; - font-size: 14px; - font-weight: 600; - text-align: center; - color: #bdbdbd; -} -.wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after { - display: inline-block; - position: absolute; - content: 'PRO'; - background: #ff5722; - border-radius: 4px; - color: #fff; - font-size: 10px; - line-height: 1; - font-style: normal; - padding: 4px 6px; - margin-left: 4px; - vertical-align: top; - top: 10px; - left: auto; - right: 10px; - z-index: 11; -} -.wrio-table { - width: 100%; - table-layout: fixed; - box-sizing: border-box; - border-spacing: 3px; - background: #fff; - border-top: 2px dashed #cac9c9; -} -.wrio-table th, -.wrio-table td { - padding: 16px 10px; - text-align: center; -} -.wrio-table th { - background: #f3f3f3; - color: #777777; - box-shadow: 0 1px 0 #d8d8d8; -} -.wrio-table th:nth-child(2n+1) { - background: #f9f9f9; -} -.wrio-table tr.wrio-error { - background-color: #ffe9e9 !important; -} -.wrio-table .wrio-table-spinner { - background: url("../img/quick-start-loader.gif") center center no-repeat; -} -.wrio-table .wrio-table-highlighter { - display: inline-block; - padding: 3px 7px; - background: #f3f3f3; -} -.wrio-table .wbcr-rio-server-success { - color: #8CC152; -} -.wrio-table .wbcr-rio-server-error { - color: #fb5d49; -} -.wrio-table .wbcr-rio-server-warning { - color: #ffb635; -} -.wrio-table.wbcr-rio-folders-table td:nth-child(3) { - text-align: left; -} -.wrio-servers { - padding: 40px 20px; -} -.wrio-servers label span { - display: block; - font-weight: normal; - font-size: 12px; - color: #b7b2b2; -} -.wrio-servers #wrio-change-optimization-server { - position: relative; - display: inline-block; - max-width: 400px; - margin-right: 15px; - margin-bottom: 0; - border: 1px solid #d2d0d0; - background: #efefef; -} -.wrio-servers .wrio-servers-info { - margin: 0 0 0; - padding: 20px; - background: #fff; -} -.wrio-servers .wrio-server-status-wrap { - display: inline-block; - margin-top: 8px; -} -.wrio-servers .wrio-server-status-wrap .wrio-server-status { - background: transparent; - color: #fff; - padding: 3px 5px; - border-radius: 4px; -} -.wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down { - background: #ff5722; -} -.wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable { - background: #8bc34a; -} -.wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess { - display: inline-block; - height: 10px; - width: 30px; - background: url("../img/quick-start-loader.gif") center no-repeat; -} -.wrio-servers .wrio-premium-user-balance-wrap { - display: inline-block; - margin-top: 8px; - margin-left: 10px; -} -.wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance { - color: #fff; - padding: 3px 5px; - border-radius: 4px; - background: #ffc107; -} -.wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess { - display: inline-block; - height: 10px; - width: 30px; - background: url("../img/quick-start-loader.gif") center no-repeat; -} -.wio-columns { - overflow: hidden; - padding: 15px 0; - counter-reset: cols; -} -.wio-columns [class^="col-"] { - float: left; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.wio-columns .col-1-3 { - width: 33.333%; - padding-left: 28px; -} -.wio-columns .col-2-3 { - width: 66.666%; - padding-left: 28px; -} -.wio-columns .col-1-2 { - width: 50%; - padding: 0 20px; -} -.wio-columns .col-statistics.col-statistics { - width: 60%; -} -.wio-columns .col-chart.col-chart { - width: 40%; - position: relative; - padding: 20px; - font-size: 12px; - text-transform: uppercase; - background: #f1f1f1b3; - color: #abacaf; - font-weight: bold; - border-radius: 5px; - margin-top: 10px; - text-align: left; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.wio-col { - float: left; - width: 50%; - box-sizing: border-box; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; -} -.wio-col { - padding-right: 20px; -} -.wio-col + .wio-col { - padding-right: 0; - padding-left: 50px; -} -.wio-col:target { - animation: wiohello 1s 3 linear backwards; -} -.wio-number-you-optimized { - margin-bottom: 1.35em; - overflow: hidden; -} -.wio-number-you-optimized #wio-total-optimized-attachments-pct { - color: #828282; -} -.wio-number-you-optimized .wio-number { - display: table-cell; - padding-right: 15px; - font-size: 48px; - font-weight: bold; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - color: #828282; -} -.wio-number-you-optimized .wio-text { - display: table-cell; - vertical-align: middle; - overflow: hidden; - font-size: 12px; - color: #828282; -} -.wio-number-you-optimized > p { - display: table; -} -.wio-bars { - padding-right: 15px; -} -.wio-bars p { - font-size: 12px; - margin-bottom: 5px; -} -.wio-bars + .wio-number-you-optimized { - border-bottom: 0; - padding-top: 0.85em; -} -.wio-bars + .wio-number-you-optimized p { - color: #72a53b; -} -.wio-bar-negative .wio-progress { - background: #D2D3D6; -} -.wio-bar-negative .wio-barnb { - color: #9d9fa5; -} -.wio-progress { - height: 8px; - transition: width 0.3s; - /*.wio-bar-negative { - width: 92% !important; - }*/ -} -.wio-bar-positive .wio-progress { - background: #8CC152; -} -.wio-bar-positive .wio-barnb { - color: #72a53b; -} -.wio-bar-primary .wio-progress { - background: #8CC152; -} -.wio-bar-primary .wio-barnb { - color: #72a53b; -} -.wio-right-outside-number .wio-barnb { - display: block; - margin-right: -5.25em; - text-align: right; - font-weight: bold; - line-height: 0.8; -} -/* Doughnut */ -.wio-chart { - position: relative; - top: 1px; - display: inline-block; - vertical-align: middle; -} -.wio-chart-container { - position: relative; - display: inline-block; - margin-right: 5px; -} -.wio-chart-container canvas { - display: block; -} -.wio-overview-chart-container { - float: left; - margin-right: 20px; -} -.wio-chart-percent { - position: absolute; - left: 0; - right: 0; - top: 50%; - margin-top: -0.5em; - line-height: 0.8; - text-align: center; - font-size: 54px; - font-weight: bold; - color: #afafaf; -} -.wio-chart-percent span { - font-size: 20px; - vertical-align: super; -} -#wio-overview-chart-legend { - overflow: hidden; -} -.wio-doughnut-legend li { - display: inline-block; - position: relative; - margin-bottom: 15px; - border-radius: 5px; - padding: 3px 8px 2px 31px; - font-size: 9px; - cursor: default; - -webkit-transition: background-color 200ms ease-in-out; - -moz-transition: background-color 200ms ease-in-out; - -o-transition: background-color 200ms ease-in-out; - transition: background-color 200ms ease-in-out; -} -.wio-doughnut-legend li span { - display: block; - position: absolute; - left: 0; - top: 0; - width: 25px; - height: 25px; - border-radius: 50%; -} -.wio-optimize-button { - min-width: 180px; - padding: 12px 30px; - background: #c9deb2; - color: #586549; - border: 0; - box-shadow: none; - font-size: 14px; - text-transform: uppercase !important; - font-weight: bold; - border-radius: 4px; - outline: none; -} -.wio-optimize-button:active { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5); -} -.wio-optimize-button:disabled { - background: #e2edd6; - color: #a5b295; -} -.wio-optimize-button.wio-running { - color: #a57b3c; - background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat; - padding-left: 50px; -} -.wio-global-optim-phrase { - width: 180px; - padding-top: 20px; - font-size: 14px; - text-align: center; -} -.wio-total-percent { - color: #587f2e; -} -#wio-start-msg-top, -#wio-start-msg-right, -#wio-start-msg-complete { - display: none; -} -.wio-text-left { - text-align: left; -} -span.wio-num { - display: inline !important; - position: inherit !important; -} -.wio-image-optimize-board { - padding-bottom: 0 !important; -} -.wio-page-statistic { - padding-left: 40px; -} -.wio-page-statistic .wio-chart-percent { - margin-top: -1.1em; -} -.wrio-optimization-progress { - background: none; - padding: 0; - /*button { - padding: 5px 10px; - border: 0; - font-size: 11px; - text-transform: uppercase !important; - font-weight: bold; - border-radius: 4px; - outline: none; - background: @greyButtonBg; - color: @greyButtonColor; - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); - - &:active { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5); - } - - &.wbcr-rio-loading { - width: 56px; - font-size: 0; - background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat; - } - - &.wbcr-rio-selected { - background: #f3efe2; - color: #d8d8d8; - - &:active { - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); - } - } - }*/ -} -.wrio-optimization-progress h4 { - font-size: 15px; - font-weight: 700; -} -.wrio-optimization-progress .wbcr-rio-warning-message { - padding: 20px; - background: #efefef; - font-size: 15px; - color: #b7b7b7; - font-style: italic; -} -.wio-widget { - padding: 0 !important; -} -.wio-widget .wio-chart-percent { - font-size: 44px; - line-height: 1; -} -.wio-widget .wio-bars { - width: 60%; - margin-left: 155px; -} -.wio-widget .col-chart.col-chart { - width: 100%; -} -.wio-widget .col-controls { - width: 45%; - padding-left: 5px; - padding-top: 110px; -} -.wio-widget .wio-doughnut-legend { - /*padding-top:30px;*/ - text-align: left; -} -.wio-widget .wio-widget-bottom { - display: table; - padding-top: 20px !important; - width: 100%; - text-align: right; -} -.wio-widget .wio-widget-bottom li { - display: table-cell; -} -.wio-widget .wio-widget-bottom li:first-child { - text-align: left; -} -.factory-checkbox.wrio-checkbox-premium-label:after { - display: inline-block; - position: relative; - content: 'PRO'; - background: #ff5722; - border-radius: 4px; - color: #fff; - font-size: 10px; - line-height: 1; - font-style: normal; - padding: 4px 6px; - margin-left: 4px; - vertical-align: top; - top: -8px; - left: -10px; - right: auto; - z-index: 11; -} -.factory-checkbox-disabled input, -.factory-checkbox-disabled button { - pointer-events: none; - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -#wrio-webp-options h3, -#wrio-error-log-options h3 { - font-size: 14px; - margin: 0 0 10px 0; - font-weight: 600; - color: #565656; -} -#wrio-webp-options .wrio-webp-options-info, -#wrio-error-log-options .wrio-webp-options-info { - color: #8a8787; - font-size: 12px; -} -#wrio-webp-options ul, -#wrio-error-log-options ul { - padding-left: 0; -} -#wrio-webp-options ul li:after, -#wrio-error-log-options ul li:after { - content: ''; - display: block; - clear: both; -} -#wrio-webp-options ul li label, -#wrio-error-log-options ul li label { - font-weight: 600; -} -#wrio-webp-options ul li .wrio-webp-options-radio, -#wrio-error-log-options ul li .wrio-webp-options-radio, -#wrio-webp-options ul li .wrio-error-log-options-checkbox, -#wrio-error-log-options ul li .wrio-error-log-options-checkbox { - display: block; - float: left; - margin-top: 2px; - margin-right: 8px; -} -#wrio-webp-options ul li .wrio-webp-options-radio:focus, -#wrio-error-log-options ul li .wrio-webp-options-radio:focus, -#wrio-webp-options ul li .wrio-error-log-options-checkbox:focus, -#wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus { - outline: none; - box-shadow: none; -} -#wrio-webp-options ul li .wrio-webp-options-info, -#wrio-error-log-options ul li .wrio-webp-options-info, -#wrio-webp-options ul li .wrio-error-log-options-info, -#wrio-error-log-options ul li .wrio-error-log-options-info { - padding-left: 25px; -} -@media (max-width: 830px) { - .wio [class^="col-"] { - float: none; - margin-bottom: 1.5em; - } - .wio .col-1-3, - .wio .col-1-2 { - width: auto; - padding: 0 28px; - clear: both; - padding-top: 1em; - } -} -@keyframes wiohello { - 0%, - 100% { - background: #FFF; - } - 50% { - background: #F4F7F9; - } -} -@media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) { - .wio-columns .col-statistics.col-statistics, - .wio-columns .col-chart.col-chart { - width: 50%; - } -} -@media (max-width: 808px) { - .wio-columns .col-statistics.col-statistics, - .wio-columns .col-chart.col-chart { - width: auto; - float: none; - padding: 0; - } - .wio-columns .col-chart.col-chart { - margin-top: 3em; - } -} -/*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) { - .wio-overview-chart-container { - float: none; - margin-right: 0; - } -} - -@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) { - .wio-overview-chart-container { - float: none; - margin-right: 0; - } - - .wio-doughnut-legend { - margin-top: 18px; - } - - .wio-global-optim-phrase { - padding-top: 0; - width: auto; - } -}*/ -/*# sourceMappingURL=step-optimize-images.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/gutenberg/build/index.build.js b/wp-content/plugins/!clearfy/admin/assets/gutenberg/build/index.build.js deleted file mode 100644 index 1e5f0722..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/gutenberg/build/index.build.js +++ /dev/null @@ -1,100 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./src/index.js": -/*!**********************!*\ - !*** ./src/index.js ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -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 \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?"); - -/***/ }) - -/******/ }); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/gutenberg/src/index.js b/wp-content/plugins/!clearfy/admin/assets/gutenberg/src/index.js deleted file mode 100644 index 3f18f1f4..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/gutenberg/src/index.js +++ /dev/null @@ -1,179 +0,0 @@ -/** - * Gutenber autosave control. A simple solution for managing autosaves in gutenberg editor. - * Previously, we simply turned off autosave using hooks, but in the editor, - * you can’t do this in the gutenber. - * - * This widget for Gutenberg editor adds an icon, when clicked, you can select the autosave interval or full disable it. - * - * @author Webcraftic - * @copyright (c) 10.12.2018, Webcraftic - * @version 1.0 - * - * Credits: - * This is not our development, we found excellent plugin and used these functions in our plugin. It is foolish to reinvent the wheel. - * I hope in the future we will refine it better and add our ideas. - * In the development of the code used by the author plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/ - */ - -const NOT_TODAY = 99999; - -const INTERVAL_OPTIONS = [ - { - label: '10 seconds (default)', - value: 10, - }, - { - label: '30 seconds', - value: 30, - }, - { - label: '1 minute', - value: 60, - }, - { - label: '5 minutes', - value: 60 * 5, - }, - { - label: '10 minutes', - value: 60 * 10, - }, - { - label: '30 minutes', - value: 60 * 30, - }, - { - label: 'Disabled', - value: NOT_TODAY, - }, -]; - -class ClearfyGutenbergAutosave extends React.Component { - constructor(props) { - super(props); - - this.state = { - interval: 0, - error: false, - }; - - this.apiGetInterval = this.apiGetInterval.bind(this); - this.apiSetInterval = this.apiSetInterval.bind(this); - this.editorUpdateInterval = this.editorUpdateInterval.bind(this); - } - - apiGetInterval() { - wp.apiFetch({path: '/clearfy-gutenberg-autosave/v1/interval'}) - .then( - interval => { - this.setState({ - interval, - error: false, - }); - }, - error => { - this.setState({ - interval: NOT_TODAY, - error: error.message, - }); - } - ) - } - - apiSetInterval() { - if( this.state.error ) { - return; - } - - wp.apiFetch({ - path: '/clearfy-gutenberg-autosave/v1/interval?interval=' + parseInt(this.state.interval), - method: 'POST', - }); - } - - editorUpdateInterval() { - this.props.updateEditorSettings( - Object.assign( - {}, - this.props.editorSettings, - {autosaveInterval: parseInt(this.state.interval)} - ) - ); - } - - componentDidMount() { - this.apiGetInterval(); - } - - componentDidUpdate(prevProps, prevState) { - if( !this.state.interval ) { - return; - } - - if( prevState.interval && prevState.inverval !== 0 && prevState.interval !== this.state.interval ) { - this.apiSetInterval(); - } - - if( this.props.editorSettings.autosaveInterval && this.props.editorSettings.autosaveInterval !== this.state.interval ) { - this.editorUpdateInterval(); - } - } - - render() { - return ( - - - {'Clearfy Gutenberg Autosave'} - - - - {!this.state.interval &&

{'Loading...'}

} - {(!!this.state.interval && this.state.error) && ( - -

{'API error:'}

-

{this.state.error}

-

{'Autosave is disabled anyway, but you cannot set custom intervals.'}

- { - this.setState({ - interval: 0, - error: false, - }); - this.apiGetInterval(); - }} - > - {'Try again'} - -
- )} - {(!!this.state.interval && !this.state.error) && ( - this.setState({interval: parseInt(value)})} - /> - )} -
-
-
- ); - } -} - -wp.plugins.registerPlugin('clearfy-gutenberg-autosave', { - icon: 'backup', - render: wp.compose.compose([ - wp.data.withSelect(select => { - return { - editorSettings: select('core/editor').getEditorSettings(), - }; - }), - wp.data.withDispatch(dispatch => { - return { - updateEditorSettings: dispatch('core/editor').updateEditorSettings, - }; - }), - ])(ClearfyGutenbergAutosave), -}); diff --git a/wp-content/plugins/!clearfy/admin/assets/gutenberg/webpack.config.js b/wp-content/plugins/!clearfy/admin/assets/gutenberg/webpack.config.js deleted file mode 100644 index 82204e37..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/gutenberg/webpack.config.js +++ /dev/null @@ -1,28 +0,0 @@ -// node module that let's us do file system stuffs... -const path = require('path'); - -// Webpack expects an exported object with all the configurations, so we export an object here -module.exports = { - entry: './src/index.js', // Where to find our main js - output: { - // where we want our built file to go to and be named - // I name it index.build.js so I keep index files separate - filename: 'index.build.js', - // we're going to put our built file in a './build/' folder - path: path.resolve(__dirname, 'build') - }, - module: { - rules: [ - { - // basically tells webpack to use babel with the correct presets - test: /\.js$/, - loader: 'babel-loader', - query: { - presets: ['@babel/preset-env', '@babel/preset-react'] - } - } - ] - }, - // Webpack yells at you if you don't choose a mode... - mode: 'development' -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/img/asm-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/asm-icon-128x128.png deleted file mode 100644 index 6798dba0..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/asm-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/async-js-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/async-js-icon-128x128.png deleted file mode 100644 index 07572d99..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/async-js-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/bind-key.png b/wp-content/plugins/!clearfy/admin/assets/img/bind-key.png deleted file mode 100644 index 39a52cf7..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/bind-key.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/cache-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/cache-icon-128x128.png deleted file mode 100644 index a7b0e56e..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/cache-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--default.png b/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--default.png deleted file mode 100644 index d8624e2c..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--default.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--lock.png b/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--lock.png deleted file mode 100644 index 86320f8d..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/clearfy-premium-icon-256x256--lock.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/clearfylogo-768x300.png b/wp-content/plugins/!clearfy/admin/assets/img/clearfylogo-768x300.png deleted file mode 100644 index 3a425d0d..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/clearfylogo-768x300.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/create-account-bg.png b/wp-content/plugins/!clearfy/admin/assets/img/create-account-bg.png deleted file mode 100644 index fd335a80..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/create-account-bg.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/ctr-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/ctr-icon-128x128.png deleted file mode 100644 index 96194b70..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/ctr-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/dan-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/dan-icon-128x128.png deleted file mode 100644 index 90ebe7dc..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/dan-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/dic-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/dic-icon-128x128.png deleted file mode 100644 index 7120849f..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/dic-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/finish.png b/wp-content/plugins/!clearfy/admin/assets/img/finish.png deleted file mode 100644 index 8ae230e1..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/finish.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/free-license-chip.png b/wp-content/plugins/!clearfy/admin/assets/img/free-license-chip.png deleted file mode 100644 index 75efe7eb..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/free-license-chip.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/g-audit-preloader2.gif b/wp-content/plugins/!clearfy/admin/assets/img/g-audit-preloader2.gif deleted file mode 100644 index 161414ea..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/g-audit-preloader2.gif and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/gac-icon-128x128.jpg b/wp-content/plugins/!clearfy/admin/assets/img/gac-icon-128x128.jpg deleted file mode 100644 index 14056af3..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/gac-icon-128x128.jpg and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/gnzp-icon-256x256.png b/wp-content/plugins/!clearfy/admin/assets/img/gnzp-icon-256x256.png deleted file mode 100644 index 9483c78e..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/gnzp-icon-256x256.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/green-license-chip.png b/wp-content/plugins/!clearfy/admin/assets/img/green-license-chip.png deleted file mode 100644 index 09ca4ee0..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/green-license-chip.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/hlp-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/hlp-icon-128x128.png deleted file mode 100644 index 0d23e56c..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/hlp-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/how-to-find-key.png b/wp-content/plugins/!clearfy/admin/assets/img/how-to-find-key.png deleted file mode 100644 index 156b5f7f..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/how-to-find-key.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/key-bound-icon.png b/wp-content/plugins/!clearfy/admin/assets/img/key-bound-icon.png deleted file mode 100644 index 7ddb957e..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/key-bound-icon.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/paid-license-chip.png b/wp-content/plugins/!clearfy/admin/assets/img/paid-license-chip.png deleted file mode 100644 index 31595b34..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/paid-license-chip.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-128x128.png deleted file mode 100644 index 9cfe546c..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-256x256.png b/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-256x256.png deleted file mode 100644 index 1ba6a6f8..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/rio-icon-256x256.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-128x128.png deleted file mode 100644 index 9cfe546c..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--default.png b/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--default.png deleted file mode 100644 index 931aa1ec..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--default.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--lock.png b/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--lock.png deleted file mode 100644 index 8674e15f..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/rio-premium-icon-256x256--lock.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/robin-image-optimizer-fake-board.png b/wp-content/plugins/!clearfy/admin/assets/img/robin-image-optimizer-fake-board.png deleted file mode 100644 index 82be0b12..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/robin-image-optimizer-fake-board.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/setup-preloader-124x124.gif b/wp-content/plugins/!clearfy/admin/assets/img/setup-preloader-124x124.gif deleted file mode 100644 index 2c853ccb..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/setup-preloader-124x124.gif and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/sfi-icon-256x256.png b/wp-content/plugins/!clearfy/admin/assets/img/sfi-icon-256x256.png deleted file mode 100644 index 4ebd1000..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/sfi-icon-256x256.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/super-page-cache-screenshot.png b/wp-content/plugins/!clearfy/admin/assets/img/super-page-cache-screenshot.png deleted file mode 100644 index 6d759952..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/super-page-cache-screenshot.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/titan-icon-256x256.jpg b/wp-content/plugins/!clearfy/admin/assets/img/titan-icon-256x256.jpg deleted file mode 100644 index 1560379b..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/titan-icon-256x256.jpg and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/trial-license-chip.png b/wp-content/plugins/!clearfy/admin/assets/img/trial-license-chip.png deleted file mode 100644 index 6e27cd90..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/trial-license-chip.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/upm-icon-128x128.png b/wp-content/plugins/!clearfy/admin/assets/img/upm-icon-128x128.png deleted file mode 100644 index cac76ae3..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/upm-icon-128x128.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/upmp-icon-256x256.png b/wp-content/plugins/!clearfy/admin/assets/img/upmp-icon-256x256.png deleted file mode 100644 index 036de397..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/upmp-icon-256x256.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/img/warning.png b/wp-content/plugins/!clearfy/admin/assets/img/warning.png deleted file mode 100644 index 6cd9fe72..00000000 Binary files a/wp-content/plugins/!clearfy/admin/assets/img/warning.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/admin/assets/js/circular-progress.js b/wp-content/plugins/!clearfy/admin/assets/js/circular-progress.js deleted file mode 100644 index 9d4029f8..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/circular-progress.js +++ /dev/null @@ -1,139 +0,0 @@ -/** - * - * @author Webcraftic - * @copyright (c) 04.02.2020, Webcraftic - * @version 1.0 - */ - -//wfCircularProgress -jQuery.fn.wfCircularProgress = function (options) { - jQuery(this).each(function () { - var creationOptions; - try { - creationOptions = JSON.parse(jQuery(this).data('wfCircularProgressOptions')); - } catch (e) { /* Ignore */ - } - if (typeof creationOptions !== 'object') { - creationOptions = {}; - } - var opts = jQuery.extend({}, jQuery.fn.wfCircularProgress.defaults, creationOptions, options); - - var center = Math.floor(opts.diameter / 2); - var insetRadius = center - opts.strokeWidth * 2; - - var circumference = 2 * insetRadius * Math.PI; - var finalOffset = -(circumference * (1 - opts.endPercent)); - var initialOffset = -(circumference); - - var terminatorRadius = Math.floor(opts.strokeWidth * 1.5); - var terminatorDiameter = 2 * terminatorRadius; - var finalTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.endPercent - 0.25)); - var finalTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.endPercent - 0.25)); - var initialTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.startPercent - 0.25)); - var initialTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.startPercent - 0.25)); - - var terminatorSVG = "m 0,-" + terminatorRadius + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0," + terminatorDiameter + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0,-" + terminatorDiameter; - - jQuery(this).data('wfCircularProgressOptions', JSON.stringify(opts)); - - jQuery(this).css('width', opts.diameter + 'px'); - jQuery(this).css('height', opts.diameter + 'px'); - - var svg = jQuery(this).find('svg'); - if (svg.length === 0) { - svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); - jQuery(this).append(svg); - } - var inactivePath = jQuery(this).find('.wclearfy-status-circle-inactive-path'); - if (inactivePath.length === 0) { - inactivePath = document.createElementNS("http://www.w3.org/2000/svg", "path"); - jQuery(inactivePath).addClass('wclearfy-status-circle-inactive-path'); - jQuery(svg).append(inactivePath); - } - var activePath = jQuery(this).find('.wclearfy-status-circle-active-path'); - if (activePath.length === 0) { - activePath = document.createElementNS("http://www.w3.org/2000/svg", "path"); - jQuery(activePath).addClass('wclearfy-status-circle-active-path'); - jQuery(svg).append(activePath); - } - var terminator = jQuery(this).find('.wclearfy-status-circle-terminator'); - if (terminator.length === 0) { - terminator = document.createElementNS("http://www.w3.org/2000/svg", "path"); - jQuery(terminator).addClass('wclearfy-status-circle-terminator'); - jQuery(svg).append(terminator); - } - var text = jQuery(this).find('.wclearfy-status-circle-text'); - if (text.length === 0) { - text = jQuery('
'); - jQuery(this).append(text); - } - var pendingOverlay = jQuery(this).find('.wf-status-overlay-text'); - if (pendingOverlay.length === 0 && opts.pendingMessage.length !== 0) { - pendingOverlay = jQuery('
'); - jQuery(this).append(pendingOverlay); - } - - jQuery(svg).attr('viewBox', '0 0 ' + opts.diameter + ' ' + opts.diameter); - jQuery(svg).css('display', opts.css_display); - jQuery(svg).css('width', opts.diameter + 'px'); - jQuery(svg).css('height', opts.diameter + 'px'); - jQuery(inactivePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius)); - jQuery(inactivePath).attr('stroke', opts.inactiveColor); - jQuery(inactivePath).attr('stroke-width', opts.strokeWidth); - jQuery(inactivePath).attr('fill-opacity', 0); - jQuery(activePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius)); - jQuery(activePath).attr('stroke', opts.color); - jQuery(activePath).attr('stroke-width', opts.strokeWidth); - jQuery(activePath).attr('stroke-dasharray', circumference + ',' + circumference); - jQuery(activePath).attr('stroke-dashoffset', initialOffset); - jQuery(activePath).attr('fill-opacity', 0); - jQuery(terminator).attr('d', 'M ' + initialTerminatorX + ',' + initialTerminatorY + ' ' + terminatorSVG); - jQuery(terminator).attr('stroke', opts.color); - jQuery(terminator).attr('stroke-width', opts.strokeWidth); - jQuery(terminator).attr('fill', '#ffffff'); - jQuery(pendingOverlay).html(opts.pendingMessage); - - jQuery(pendingOverlay).animate({ - opacity: opts.pendingOverlay ? 1.0 : 0.0, - }, { - duration: 500, - step: function (value) { - var opacity = 1.0 - (value * 0.8); - jQuery(svg).css('opacity', opacity); - jQuery(text).css('opacity', opacity); - }, - complete: function () { - jQuery(svg).css('opacity', opts.pendingOverlay ? 0.2 : 1.0); - jQuery(text).css('opacity', opts.pendingOverlay ? 0.2 : 1.0); - } - }); - - jQuery(activePath).animate({ - "stroke-dashoffset": finalOffset + 'px' - }, { - duration: 500, - step: function (value) { - var percentage = 1 + value / circumference; - var x = center - insetRadius * Math.cos(Math.PI * 2 * (percentage - 0.25)); - var y = center + insetRadius * Math.sin(Math.PI * 2 * (percentage - 0.25)); - jQuery(terminator).attr('d', 'M ' + x + ',' + y + ' ' + terminatorSVG); - text.html(Math.round(percentage * 100)); - }, - complete: function () { - text.html(Math.round(opts.endPercent * 100)); - } - }); - }); -}; - -jQuery.fn.wfCircularProgress.defaults = { - startPercent: 0, - endPercent: 1, - color: '#16bc9b', - inactiveColor: '#ececec', - strokeWidth: 3, - diameter: 100, - pendingOverlay: false, - pendingMessage: 'Note: Status will update when changes are saved', - css_display: 'block', -}; diff --git a/wp-content/plugins/!clearfy/admin/assets/js/general.js b/wp-content/plugins/!clearfy/admin/assets/js/general.js deleted file mode 100644 index d03b224d..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/general.js +++ /dev/null @@ -1,308 +0,0 @@ -/** - * General - * @author Webcraftic - * @copyright (c) 10.09.2017, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - var general = { - init: function() { - this.qickStartAssistent(); - this.importOptions(); - - /*$.wfactory_480.hooks.add('core/components/pre_activate', function(button) { - // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy - if( !$('#WBCR').length ) { - return false; - } - if( button.closest('.wbcr-clr-new-component').length ) { - button.closest('.wbcr-clr-new-component').remove(); - } - if( button.closest('.wbcr-clearfy-fake-image-optimizer-board').length ) { - button.remove(); - window.location.reload(); - } - });*/ - - /*$.wfactory_480.hooks.add('core/components/updated', function(button, data, response) { - // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy - if( !($('#WBCR').length && $.wbcr_factory_templates_134) ) { - return false; - } - if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) { - $.wbcr_factory_templates_134.app.showNotice(response.data.need_rewrite_rules, 'warning'); - } - });*/ - }, - qickStartAssistent: function() { - var self = this; - - $('.wbcr-clearfy-button-activate-mode').click(function() { - - var switcher = $(this).closest('.wbcr-clearfy-switch'), - modeName = switcher.data('mode'), - modeOptions = switcher.data('mode-options'); - - if( switcher.hasClass('wbcr-clearfy-loading') || switcher.hasClass('wbcr-clearfy-active') ) { - return false; - } - - self.showConfirmationPopup(modeName, modeOptions); - return false; - }); - - $('.wbcr-clearfy-popup-button-cancel').click(function() { - self.hideConfirmationPopup(); - }); - - /*$('.wbcr-clearfy-button-deativate-mode').click(function() { - var $this = $(this), - switcher = $(this).closest('.wbcr-clearfy-switch'), - modeName = switcher.data('mode'); - if( switcher.hasClass('wbcr-clearfy-loading') ) { - return false; - } - switcher.addClass('wbcr-clearfy-loading'); - self.sendRequest({ - action: 'wbcr_clearfy_configurate', - mode: modeName, - cancel_mode: true - }, function(data) { - switcher.removeClass('wbcr-clearfy-loading'); - if( data && data.export_options ) { - $('#wbcr-clearfy-import-export').html(data.export_options); - } - }, - function() { - if( modeName != 'reset' ) { - switcher.removeClass('wbcr-clearfy-active'); - } - }); - return false; - });*/ - - $('.wbcr-clearfy-popup-button-ok').click(function() { - var $this = $(this), modeName = $this.closest('.wbcr-clearfy-confirm-popup').data('mode'), - switcher = $('div[data-mode="' + modeName + '"]', '#wbcr-clearfy-quick-mode-board'), - modeArgs = switcher.data('mode-args'), - flushRedirect = modeArgs && modeArgs.flush_redirect; - - self.hideConfirmationPopup(); - switcher.addClass('wbcr-clearfy-loading'); - - self.sendRequest({ - action: 'wbcr_clearfy_configurate', - mode: modeName, - flush_redirect: flushRedirect - }, function(data) { - if( !flushRedirect ) { - switcher.removeClass('wbcr-clearfy-loading'); - } - - if( !data || data.error ) { - /** - * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в - * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле - * libs/clearfy/admin/assests/js/global.js Пример регистрации хука - * $.wbcr_factory_templates_134.hooks.add('wbcr/factory_templates_134/updated', - * function(noticeId) {}); - * @param {string} modeName - имя режима конфигурации - * @param {object} data - */ - - $.wbcr_factory_templates_134.hooks.run('clearfy/quick_start/configurated_error', [ - modeName, - data - ]); - return; - } - - if( data.export_options ) { - $('#wbcr-clearfy-import-export').html(data.export_options); - } - }, - function(data) { - - /** - * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении - * конфигурации Реализация системы фильтров и хуков в файле - * libs/clearfy/admin/assests/js/global.js Пример регистрации хука - * $.wbcr_factory_templates_134.hooks.add('wbcr/factory_templates_134/updated', function(noticeId) - * {}); - * @param {string} modeName - имя режима конфигурации - * @param {object} data - */ - $.wbcr_factory_templates_134.hooks.run('clearfy/quick_start/configurated', [modeName, data]); - - if( modeName !== 'reset' ) { - switcher.addClass('wbcr-clearfy-active'); - return; - } - - $('.wbcr-clearfy-switch').removeClass('wbcr-clearfy-active'); - }); - - return false; - }); - }, - - showConfirmationPopup: function(modeName, options) { - var self = this; - - if( !$('.wbcr-clearfy-layer').length ) { - var layer = $('
').addClass('wbcr-clearfy-layer'); - layer.prependTo('#wpbody'); - layer.fadeIn(); - } else { - $('.wbcr-clearfy-layer').fadeIn(); - } - - var popupElem = $('.wbcr-clearfy-confirm-popup'); - popupElem.data('mode', modeName); - popupElem.fadeIn(); - - if( modeName !== 'reset' ) { - var printOptTitles = ''; - - if( options ) { - for( var opt in options ) { - if( !options.hasOwnProperty(opt) ) { - continue; - } - printOptTitles += '
  • ' + options[opt] + '
  • '; - - } - $('.wbcr-clearfy-list-options').html(printOptTitles); - popupElem.addClass('wbcr-clearfy-default-warning-options'); - } - return; - } - - popupElem.addClass('wbcr-clearfy-reset-warning-options'); - }, - - hideConfirmationPopup: function() { - $('.wbcr-clearfy-layer').fadeOut(100); - var popupElem = $('.wbcr-clearfy-confirm-popup'); - - popupElem.fadeOut(100, function() { - popupElem.removeClass('wbcr-clearfy-default-warning-options'); - popupElem.removeClass('wbcr-clearfy-reset-warning-options'); - }); - - }, - - importOptions: function() { - var self = this; - - $('.wbcr-clearfy-import-options-button').click(function() { - var settings = $('#wbcr-clearfy-import-export').val(), - $this = $(this); - - if( !settings ) { - $.wbcr_factory_templates_134.app.showNotice('Import options is empty!', 'danger'); - return false; - } - - if( void 0 === wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) { - $.wbcr_factory_templates_134.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger'); - return false; - } - - $(this).prop('disabled', true); - - self.sendRequest({ - action: 'wbcr-clearfy-import-settings', - _wpnonce: wbcr_clearfy_ajax.import_options_nonce, - settings: settings - }, function(response) { - $this.prop('disabled', false); - - if( response.data.update_notice ) { - if( !$('.wbcr-clr-update-package').length ) { - $.wbcr_factory_templates_134.app.showNotice(response.data.update_notice); - } - } else { - if( $('.wbcr-clr-update-package').length ) { - $('.wbcr-clr-update-package').closest('.wbcr-factory-warning-notice').remove(); - } - } - }); - - return false; - }); - }, - sendRequest: function(request_data, beforeValidateCallback, successCallback) { - var self = this; - - if( wbcr_clearfy_ajax === undefined ) { - console.log('Undefinded wbcr_clearfy_ajax object.'); - return; - } - - if( typeof request_data === 'object' ) { - request_data.security = wbcr_clearfy_ajax.ajax_nonce; - } - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: request_data, - success: function(data, textStatus, jqXHR) { - var noticeId; - - beforeValidateCallback && beforeValidateCallback(data); - - if( !data || data.error ) { - console.log(data); - - if( data ) { - noticeId = $.wbcr_factory_templates_134.app.showNotice(data.error_message, 'danger'); - } else { - if( void 0 !== wbcr_clearfy_ajax ) { - noticeId = $.wbcr_factory_templates_134.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger'); - } - } - - setTimeout(function() { - $.wbcr_factory_templates_134.app.hideNotice(noticeId); - }, 5000); - return; - } - - successCallback && successCallback(data); - - if( !request_data.flush_redirect ) { - if( void 0 !== wbcr_clearfy_ajax ) { - noticeId = $.wbcr_factory_templates_134.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success'); - - setTimeout(function() { - $.wbcr_factory_templates_134.app.hideNotice(noticeId); - }, 5000); - } - return; - } - - window.location.href = wbcr_clearfy_ajax.flush_cache_url; - // открыть уведомление - - }, - error: function(xhr, ajaxOptions, thrownError) { - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - - var noticeId = $.wbcr_factory_templates_134.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger'); - } - }); - } - }; - - $(document).ready(function() { - general.init(); - }); - -})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/assets/js/general.js_ b/wp-content/plugins/!clearfy/admin/assets/js/general.js_ deleted file mode 100644 index b0e12ed5..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/general.js_ +++ /dev/null @@ -1,286 +0,0 @@ -/** - * General - * @author Webcraftic - * @copyright (c) 10.09.2017, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - var general = { - init: function() { - this.qickStartAssistent(); - this.importOptions(); - - /*$.wfactory_000.hooks.add('core/components/pre_activate', function(button) { - // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy - if( !$('#WBCR').length ) { - return false; - } - - if( button.closest('.wbcr-clr-new-component').length ) { - button.closest('.wbcr-clr-new-component').remove(); - } - - if( button.closest('.wbcr-clearfy-fake-image-optimizer-board').length ) { - button.remove(); - window.location.reload(); - } - });*/ - - /*$.wfactory_000.hooks.add('core/components/updated', function(button, data, response) { - // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy - if( !($('#WBCR').length && $.wbcr_factory_templates_000) ) { - return false; - } - - if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) { - $.wbcr_factory_templates_000.app.showNotice(response.data.need_rewrite_rules, 'warning'); - } - - });*/ - }, - qickStartAssistent: function() { - var self = this; - - $('.wbcr-clearfy-button-activate-mode').click(function() { - - var modeName = $(this).data('mode'), - modeOptions = $(this).data('mode-options'); - - if( $(this).hasClass('wbcr-clearfy-loading') || $(this).hasClass('wbcr-clearfy-active') ) { - return false; - } - - self.showConfirmationPopup(modeName, modeOptions); - return false; - }); - - $('.wbcr-clearfy-popup-button-cancel').click(function() { - self.hideConfirmationPopup(); - }); - - $('.wbcr-clearfy-popup-button-ok').click(function() { - var $this = $(this), modeName = $this.closest('.wbcr-clearfy-confirm-popup').data('mode'), - switcher = $('div[data-mode="' + modeName + '"]', '#wbcr-clearfy-quick-mode-board'), - modeArgs = switcher.data('mode-args'), - flushRedirect = modeArgs && modeArgs.flush_redirect; - - self.hideConfirmationPopup(); - switcher.addClass('wbcr-clearfy-loading'); - - self.sendRequest({ - action: 'wbcr_clearfy_configurate', - mode: modeName, - flush_redirect: flushRedirect - }, function(data) { - - if( !flushRedirect ) { - switcher.removeClass('wbcr-clearfy-loading'); - } - - if( !data || data.error ) { - /** - * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в - * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле - * libs/clearfy/admin/assests/js/global.js Пример регистрации хука - * $.wbcr_factory_templates_000.hooks.add('wbcr/factory_templates_000/updated', - * function(noticeId) {}); - * @param {string} modeName - имя режима конфигурации - * @param {object} data - */ - - $.wbcr_factory_templates_000.hooks.run('clearfy/quick_start/configurated_error', [ - modeName, - data - ]); - return; - } - - if( data.export_options ) { - $('#wbcr-clearfy-import-export').html(data.export_options); - } - }, - function(data) { - - /** - * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении - * конфигурации Реализация системы фильтров и хуков в файле - * libs/clearfy/admin/assests/js/global.js Пример регистрации хука - * $.wbcr_factory_templates_000.hooks.add('wbcr/factory_templates_000/updated', function(noticeId) - * {}); - * @param {string} modeName - имя режима конфигурации - * @param {object} data - */ - $.wbcr_factory_templates_000.hooks.run('clearfy/quick_start/configurated', [modeName, data]); - - if( modeName !== 'reset' ) { - switcher.addClass('wbcr-clearfy-active'); - return; - } - - $('.wbcr-clearfy-switch').removeClass('wbcr-clearfy-active'); - }); - - return false; - }); - }, - - showConfirmationPopup: function(modeName, options) { - var self = this; - - if( !$('.wbcr-clearfy-layer').length ) { - var layer = $('
    ').addClass('wbcr-clearfy-layer'); - layer.prependTo('#wpbody'); - layer.fadeIn(); - } else { - $('.wbcr-clearfy-layer').fadeIn(); - } - - var popupElem = $('.wbcr-clearfy-confirm-popup'); - popupElem.data('mode', modeName); - popupElem.fadeIn(); - - if( modeName !== 'reset' ) { - var printOptTitles = ''; - - if( options ) { - for( var opt in options ) { - if( !options.hasOwnProperty(opt) ) { - continue; - } - printOptTitles += '
  • ' + options[opt] + '
  • '; - - } - $('.wbcr-clearfy-list-options').html(printOptTitles); - popupElem.addClass('wbcr-clearfy-default-warning-options'); - } - return; - } - - popupElem.addClass('wbcr-clearfy-reset-warning-options'); - }, - - hideConfirmationPopup: function() { - $('.wbcr-clearfy-layer').fadeOut(100); - var popupElem = $('.wbcr-clearfy-confirm-popup'); - - popupElem.fadeOut(100, function() { - popupElem.removeClass('wbcr-clearfy-default-warning-options'); - popupElem.removeClass('wbcr-clearfy-reset-warning-options'); - }); - - }, - - importOptions: function() { - var self = this; - - $('.wbcr-clearfy-import-options-button').click(function() { - var settings = $('#wbcr-clearfy-import-export').val(), - $this = $(this); - - if( !settings ) { - $.wbcr_factory_templates_000.app.showNotice('Import options is empty!', 'danger'); - return false; - } - - if( void 0 === wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) { - $.wbcr_factory_templates_000.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger'); - return false; - } - - $(this).prop('disabled', true); - - self.sendRequest({ - action: 'wbcr-clearfy-import-settings', - _wpnonce: wbcr_clearfy_ajax.import_options_nonce, - settings: settings - }, function(response) { - $this.prop('disabled', false); - - if( response.data.update_notice ) { - if( !$('.wbcr-clr-update-package').length ) { - $.wbcr_factory_templates_000.app.showNotice(response.data.update_notice); - } - } else { - if( $('.wbcr-clr-update-package').length ) { - $('.wbcr-clr-update-package').closest('.wbcr-factory-warning-notice').remove(); - } - } - }); - - return false; - }); - }, - sendRequest: function(request_data, beforeValidateCallback, successCallback) { - var self = this; - - if( wbcr_clearfy_ajax === undefined ) { - console.log('Undefinded wbcr_clearfy_ajax object.'); - return; - } - - if( typeof request_data === 'object' ) { - request_data.security = wbcr_clearfy_ajax.ajax_nonce; - } - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: request_data, - success: function(data, textStatus, jqXHR) { - var noticeId; - - beforeValidateCallback && beforeValidateCallback(data); - - if( !data || data.error ) { - console.log(data); - - if( data ) { - noticeId = $.wbcr_factory_templates_000.app.showNotice(data.error_message, 'danger'); - } else { - if( void 0 !== wbcr_clearfy_ajax ) { - noticeId = $.wbcr_factory_templates_000.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger'); - } - } - - setTimeout(function() { - $.wbcr_factory_templates_000.app.hideNotice(noticeId); - }, 5000); - return; - } - - successCallback && successCallback(data); - - if( !request_data.flush_redirect ) { - if( void 0 !== wbcr_clearfy_ajax ) { - noticeId = $.wbcr_factory_templates_000.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success'); - - setTimeout(function() { - $.wbcr_factory_templates_000.app.hideNotice(noticeId); - }, 5000); - } - return; - } - - window.location.href = wbcr_clearfy_ajax.flush_cache_url; - // открыть уведомление - - }, - error: function(xhr, ajaxOptions, thrownError) { - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - - var noticeId = $.wbcr_factory_templates_000.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger'); - } - }); - } - }; - - $(document).ready(function() { - general.init(); - }); - -})(jQuery); diff --git a/wp-content/plugins/!clearfy/admin/assets/js/google-page-speed-audit.js b/wp-content/plugins/!clearfy/admin/assets/js/google-page-speed-audit.js deleted file mode 100644 index 19c62f93..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/google-page-speed-audit.js +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Setup master - * @author Webcraftic - * @copyright (c) 12.08.2020, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - window.wclearfy_fetch_google_pagespeed_audit = function(nonce, flush_cache) { - - let data = { - action: 'wclearfy-google-pagespeed-audit-results', - flush_cache: flush_cache, - _wpnonce: nonce, - }; - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: data, - success: function(response) { - console.log(response); - - if( !response || !response.success ) { - if( response.data ) { - console.log(response.data.error); - $('.wclearfy-gogle-page-speed-audit__errors').text(response.data.error).show(); - } else { - console.log(response); - } - return; - } - - //$('.wclearfy-quick-start__google-page-speed-audit').show(); - - if( response.data ) { - if( response.data.before ) { - if( !response.data.before.fake ) { - $('.wclearfy-quick-start__g-audit-overlay', '#wclearfy-quick-start__g-audit-before').hide(); - $('.wclearfy-quick-start__g-audit-preloader', '#wclearfy-quick-start__g-audit-before').hide(); - } //else { - //$('#wclearfy-quick-start__g-audit-warging-text-1').show(); - //$('.wclearfy-quick-start__g-audit-preloader', '#wclearfy-quick-start__g-audit-after').hide(); - //} - - $('.wclearfy-quick-start__g-audit-desktop-score-circle', '#wclearfy-quick-start__g-audit-before').wfCircularProgress({ - endPercent: (response.data.before.desktop.performance_score / 100), - color: get_color(response.data.before.desktop.performance_score), - inactiveColor: '#ececec', - strokeWidth: 3, - diameter: 100, - }); - - $('.wclearfy-quick-start__g-audit-mobile-score-circle', '#wclearfy-quick-start__g-audit-before').wfCircularProgress({ - endPercent: (response.data.before.mobile.performance_score / 100), - color: get_color(response.data.before.mobile.performance_score), - inactiveColor: '#ececec', - strokeWidth: 3, - diameter: 100, - }); - - // DESKTOP - $('.wclearfy-quick-start__g-audit-statistic--desktop-first-contentful-paint', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.desktop.performance_score); - $('.wclearfy-quick-start__g-audit-statistic--desktop-speed-index', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.desktop.speed_index); - $('.wclearfy-quick-start__g-audit-statistic--desktop-interactive', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.desktop.interactive); - - // MOBILE - $('.wclearfy-quick-start__g-audit-statistic--mobile-first-contentful-paint', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.mobile.performance_score); - $('.wclearfy-quick-start__g-audit-statistic--mobile-speed-index', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.mobile.speed_index); - $('.wclearfy-quick-start__g-audit-statistic--mobile-interactive', '#wclearfy-quick-start__g-audit-before') - .text(response.data.before.mobile.interactive); - } - if( response.data.after ) { - if( !response.data.after.fake ) { - $('.wclearfy-quick-start__g-audit-overlay', '#wclearfy-quick-start__g-audit-after').hide(); - $('.wclearfy-quick-start__g-audit-preloader', '#wclearfy-quick-start__g-audit-after').hide(); - } //else { - //$('#wclearfy-quick-start__g-audit-warging-text-2').show(); - //$('.wclearfy-quick-start__g-audit-preloader', '#wclearfy-quick-start__g-audit-after').hide(); - //} - - $('.wclearfy-quick-start__g-audit-desktop-score-circle', '#wclearfy-quick-start__g-audit-after').wfCircularProgress({ - endPercent: (response.data.after.desktop.performance_score / 100), - color: get_color(response.data.after.desktop.performance_score), - inactiveColor: '#ececec', - strokeWidth: 3, - diameter: 100, - }); - - $('.wclearfy-quick-start__g-audit-mobile-score-circle', '#wclearfy-quick-start__g-audit-after').wfCircularProgress({ - endPercent: (response.data.after.mobile.performance_score / 100), - color: get_color(response.data.after.mobile.performance_score), - inactiveColor: '#ececec', - strokeWidth: 3, - diameter: 100, - }); - - // DESKTOP - $('.wclearfy-quick-start__g-audit-statistic--desktop-first-contentful-paint', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.desktop.performance_score); - $('.wclearfy-quick-start__g-audit-statistic--desktop-speed-index', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.desktop.speed_index); - $('.wclearfy-quick-start__g-audit-statistic--desktop-interactive', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.desktop.interactive); - // MOBILE - $('.wclearfy-quick-start__g-audit-statistic--mobile-first-contentful-paint', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.mobile.performance_score); - $('.wclearfy-quick-start__g-audit-statistic--mobile-speed-index', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.mobile.speed_index); - $('.wclearfy-quick-start__g-audit-statistic--mobile-interactive', '#wclearfy-quick-start__g-audit-after') - .text(response.data.after.mobile.interactive); - } - } - }, - error: function(xhr, ajaxOptions, thrownError) { - - $('.wclearfy-gogle-page-speed-audit__preloader').hide(); - - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - - $('.wclearfy-gogle-page-speed-audit__errors').text('Status: ' + xhr.status + 'Error:' + xhr.responseText).show(); - } - }); - - function get_color(score) { - let desktopColor; - - if( score > 70 ) { - desktopColor = '#a8d207'; - } else if( score > 40 ) { - desktopColor = '#f18727'; - } else { - desktopColor = '#cd2727'; - } - - return desktopColor; - } - } -})(jQuery); diff --git a/wp-content/plugins/!clearfy/admin/assets/js/license-manager.js b/wp-content/plugins/!clearfy/admin/assets/js/license-manager.js deleted file mode 100644 index 0e002c2a..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/license-manager.js +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Этот файл содержит скрипт исполняелся во время процедур с формой лицензирования. - * Его основная роль отправка ajax запросов на проверку, активацию, деактивацию лицензии - * и вывод уведомлений об ошибка или успешно выполнении проверок. - * - * @author Webcraftic - * @copyright (c) 05.10.2018, Webcraftic - * @version 1.1 - * @since 1.4.0 - */ - - -jQuery(function($) { - - var allNotices = []; - - $(document).on('click', '.wcl-control-btn', function() { - - // Скрываем все открытые этим событием уведомления - // Глобальные уведомления не трогаем - - for( i = 0; i < allNotices.length; i++ ) { - $.wbcr_factory_templates_134.app.hideNotice(allNotices[i]); - } - - $('.wcl-control-btn').hide(); - - var wrapper = $('#wcl-license-wrapper'), - loader = wrapper.data('loader'); - - $(this).after(''); - - var data = { - action: 'wbcr-clearfy-check-license', - _wpnonce: $('#_wpnonce').val(), - license_action: $(this).data('action'), - licensekey: '' - }; - - if( $(this).data('action') == 'activate' ) { - data.licensekey = $('#license-key').val(); - } - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: data, - success: function(response) { - var noticeId; - - if( !response || !response.success ) { - - $('.wcl-control-btn').show(); - $('.wcl-loader').remove(); - - if( response.data ) { - console.log(response.data.error_message); - noticeId = $.wbcr_factory_templates_134.app.showNotice('Error: [' + response.data.error_message + ']', 'danger'); - allNotices.push(noticeId); - } else { - console.log(response); - } - - return; - } - - if( response.data && response.data.message ) { - noticeId = $.wbcr_factory_templates_134.app.showNotice(response.data.message, 'success'); - allNotices.push(noticeId); - - // todo: доработать генерацию формы, вместо перезагрузки страницы - window.location.reload(); - } - - }, - error: function(xhr, ajaxOptions, thrownError) { - - $('.wcl-control-btn').show(); - $('.wcl-loader').remove(); - - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - - var noticeId = $.wbcr_factory_templates_134.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger'); - - allNotices.push(noticeId); - } - }); - - return false; - }); - -}); diff --git a/wp-content/plugins/!clearfy/admin/assets/js/setup.js b/wp-content/plugins/!clearfy/admin/assets/js/setup.js deleted file mode 100644 index ab45e654..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/setup.js +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Setup master - * @author Webcraftic - * @copyright (c) 12.08.2020, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - window.wclearfy_fetch_google_pagespeed_audit = function(nonce, flush_cache) { - - let data = { - action: 'wclearfy-fetch-google-pagespeed-audit', - flush_cache: flush_cache, - _wpnonce: nonce, - }; - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: data, - success: function(response) { - console.log(response); - - $('.wclearfy-gogle-page-speed-audit__preloader').hide(); - - if( !response || !response.success ) { - if( response.data ) { - console.log(response.data.error); - $('.wclearfy-gogle-page-speed-audit__errors').text(response.data.error).show(); - } else { - console.log(response); - } - return; - } - - $('.wclearfy-gogle-page-speed-audit').show(); - - if( response.data && response.data.desktop ) { - $('#wclearfy-desktop-score__circle').wfCircularProgress({ - endPercent: (response.data.desktop.performance_score / 100), - color: get_color(response.data.desktop.performance_score), - inactiveColor: '#ececec', - strokeWidth: 5, - diameter: 150, - }); - - $('#wclearfy-statistic__desktop-first-contentful-paint').text(response.data.desktop.performance_score); - $('#wclearfy-statistic__desktop-speed-index').text(response.data.desktop.speed_index); - $('#wclearfy-statistic__desktop-interactive').text(response.data.desktop.interactive); - } - - if( response.data && response.data.mobile ) { - $('#wclearfy-mobile-score__circle').wfCircularProgress({ - endPercent: (response.data.mobile.performance_score / 100), - color: get_color(response.data.mobile.performance_score), - inactiveColor: '#ececec', - strokeWidth: 5, - diameter: 150, - }); - - $('#wclearfy-statistic__mobile-first-contentful-paint').text(response.data.desktop.performance_score); - $('#wclearfy-statistic__mobile-speed-index').text(response.data.desktop.speed_index); - $('#wclearfy-statistic__mobile-interactive').text(response.data.desktop.interactive); - } - - }, - error: function(xhr, ajaxOptions, thrownError) { - - $('.wclearfy-gogle-page-speed-audit__preloader').hide(); - - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - - $('.wclearfy-gogle-page-speed-audit__errors').text('Status: ' + xhr.status + 'Error:' + xhr.responseText).show(); - } - }); - - function get_color(score) { - let desktopColor; - - if( score > 70 ) { - desktopColor = '#a8d207'; - } else if( score > 40 ) { - desktopColor = '#f18727'; - } else { - desktopColor = '#cd2727'; - } - - return desktopColor; - } - } -})(jQuery); diff --git a/wp-content/plugins/!clearfy/admin/assets/js/widgets.js b/wp-content/plugins/!clearfy/admin/assets/js/widgets.js deleted file mode 100644 index 2d82c950..00000000 --- a/wp-content/plugins/!clearfy/admin/assets/js/widgets.js +++ /dev/null @@ -1,37 +0,0 @@ -jQuery(function($) { - - function subscribeWidget() { - var form = $('#wbcr-factory-subscribe-widget-form'); - form.submit(function(ev) { - ev.preventDefault(); - var agree = form.find('[name=agree_terms]:checked'); - if( agree.length === 0 ) { - return; - } - - $.ajax({ - method: "POST", - url: "https://clearfy.pro/wp-json/mailerlite/v1/subscribe/", - data: {email: $('.wbcr-factory-subscribe-widget-field').val()}, - success: function(data) { - if( !data.message ) { - if( data.subscribed ) { - $(".wbcr-factory-subscribe-widget-msg.success").show(); - } else { - $(".wbcr-factory-subscribe-widget-msg.success2").show(); - } - } else { - alert('Something went wrong :('); - console.error(data.message); - } - }, - error: function(error) { - console.log(error); - } - }); - }); - } - - subscribeWidget(); - -}); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/boot.php b/wp-content/plugins/!clearfy/admin/boot.php deleted file mode 100644 index 9a774c71..00000000 --- a/wp-content/plugins/!clearfy/admin/boot.php +++ /dev/null @@ -1,274 +0,0 @@ -, Alex Kovalev - * @copyright Webcraftic - * @version 1.1 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -/** - * Уведомление будет показано на всех страницах Clearfy и его компонентах. - * - * @param WCL_Plugin $plugin - * @param \WBCR\Factory_Templates_134\Impressive $obj - */ - -add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) { - # Выводит уведомление, что в отключены некоторые опции, чтобы не было конфликтов с wp rocket. - if( is_plugin_active('wp-rocket/wp-rocket.php') ) { - $obj->printWarningNotice(sprintf(__('You are using Clearfy and wp rocket together, to avoid conflicts, we have disabled similar features in Clearfy. For example, you cannot use caching in Clearfy and wp rocket at the same time. You can read more about this in this article.', 'clearfy'), 'https://clearfy.pro/docs/wp-rocket-clearfy/')); - } - # Выводит уведомление, что нужно сбросить постоянные ссылки. - if( WCL_Plugin::app()->getPopulateOption('need_rewrite_rules') ) { - $obj->printWarningNotice(sprintf('' . __('When you deactivate some components, permanent links may work incorrectly. If this happens, please, update the permalinks, so you could complete the deactivation.', 'clearfy'), admin_url('options-permalink.php')) . ''); - } -}, 10, 2); - -/** - * Этот хук реализует условную логику перенаправления на страницу мастера настроек, - * сразу после активации плагина. - */ -add_action('admin_init', function () { - $plugin = WCL_Plugin::app(); - - // If the user has updated the plugin or activated it for the first time, - // you need to show the page "What's new?" - if( !WCL_Plugin::app()->isNetworkAdmin() ) { - $setup_page_viewed = WCL_Plugin::app()->request->get('wclearfy_setup_page_viewed', null); - if( is_null($setup_page_viewed) ) { - if( WCL_Helper::is_need_show_setup_page() ) { - try { - $redirect_url = ''; - if( class_exists('Wbcr_FactoryPages480') ) { - $redirect_url = WCL_Plugin::app()->getPluginPageUrl('setup', ['wclearfy_setup_page_viewed' => 1]); - } - if( $redirect_url ) { - wp_safe_redirect($redirect_url); - die(); - } - } catch( Exception $e ) { - } - } - } else { - if( WCL_Helper::is_need_show_setup_page() ) { - delete_option($plugin->getOptionName('setup_wizard')); - } - } - } -}); - -/** - * Выводит кнопку настроек Clearfy в шапке интерфейса плагина - */ -add_action('wbcr/factory/pages/impressive/header', function ($plugin_name) { - if( $plugin_name != WCL_Plugin::app()->getPluginName() ) { - return; - } - ?> - - - - getPluginName() !== WCL_Plugin::app()->getPluginName() ) { - return; - } - - if( $plugin->isNetworkAdmin() ) { - if( !$plugin->premium->is_activate() && $plugin->isNetworkActive() ) { - $obj->redirectToAction('multisite-pro'); - } - } -} - -add_action('wbcr/factory/pages/impressive/before_form_save', 'wbcr_clearfy_multisite_before_save', 10, 3); - -/** - * Устанавливает логотип Webcraftic и сборку плагина для Clearfy и всех его компонентов - * - * @param string $title - * - * @since 1.4.0 - * - */ -function wbcr_clearfy_branding($title, $plugin_name) -{ - if($plugin_name === WCL_Plugin::app()->getPluginName()) { - $is_premium = WCL_Plugin::app()->premium->is_activate(); - - return 'Webcraftic Clearfy ' . ( $is_premium ? '' : '' ) . ' ver'; - } - - return $title; -} - -add_action('wbcr/factory/pages/impressive/plugin_title', 'wbcr_clearfy_branding', 10, 2); - -/** - * Подключаем скрипты для установки компонентов Clearfy - * на все страницы админпанели - */ -/*add_action('admin_enqueue_scripts', function () { - wp_enqueue_style('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion()); - wp_enqueue_script('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [ - 'jquery', - 'wbcr-factory-templates-134-global' - ], WCL_Plugin::app()->getPluginVersion()); -});*/ - -/** - * Удаляем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки. - */ -function wbcr_clearfy_flush_rewrite_rules($hard) -{ - WCL_Plugin::app()->deletePopulateOption('need_rewrite_rules', 1); - - return $hard; -} - -add_filter('flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules'); - -/** - * Обновить постоынные ссылки, после выполнения быстрых настроек - * - * @param WHM_Plugin $plugin - * @param \WBCR\Factory_Templates_134\Impressive $obj - */ -function wbcr_clearfy_after_form_save($plugin, $obj) -{ - if( !WCL_Plugin::app()->currentUserCan() ) { - return; - } - $is_clearfy = WCL_Plugin::app()->getPluginName() == $plugin->getPluginName(); - - if( $is_clearfy && $obj->id == 'quick_start' && isset($_GET['action']) && $_GET['action'] == 'flush-cache-and-rules' ) { - require_once ABSPATH . 'wp-admin/includes/file.php'; - require_once ABSPATH . 'wp-admin/includes/misc.php'; - flush_rewrite_rules(true); - } -} - -add_action('wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after_form_save', 10, 2); - -/** - * Widget with the offer to buy Clearfy Business - * - * @param array $widgets - * @param string $position - * @param Wbcr_Factory480_Plugin $plugin - */ - -add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) { - $is_current_plugin = $plugin->getPluginName() == WCL_Plugin::app()->getPluginName(); - - if( class_exists('WRIO_Plugin') ) { - $is_current_plugin = $plugin->getPluginName() === WRIO_Plugin::app()->getPluginName() || $plugin->getPluginName() === WCL_Plugin::app()->getPluginName(); - } - - if( $is_current_plugin ) { - - require_once WCL_PLUGIN_DIR . '/admin/includes/sidebar-widgets.php'; - - if( WCL_Plugin::app()->premium->is_activate() ) { - unset($widgets['donate_widget']); - - if( $position == 'right' ) { - unset($widgets['adverts_widget']); - unset($widgets['business_suggetion']); - unset($widgets['rating_widget']); - unset($widgets['info_widget']); - } - - return $widgets; - } else { - if( $position == 'right' ) { - unset($widgets['business_suggetion']); - unset($widgets['info_widget']); - unset($widgets['rating_widget']); - } - } - - if( $position == 'bottom' ) { - unset($widgets['support_widget']); - $widgets['donate_widget'] = wbcr_clearfy_get_sidebar_premium_widget(); - } - } - - return $widgets; -}, 9999, 3); - -/** - * Remove adverts notices for premium users - */ -add_action('wbcr/factory/admin_notices', function ($notices, $plugin_name) { - if( $plugin_name != WCL_Plugin::app()->getPluginName() ) { - return $notices; - } - - if( WCL_Plugin::app()->premium->is_activate() ) { - unset($notices['adverts_notice']); - } - - return $notices; -}, 9999, 2); - -/** - * Remove adverts widgets for premium users - */ -add_action('wp_dashboard_setup', function () { - global $wp_meta_boxes; - - if( WCL_Plugin::app()->premium->is_activate() ) { - if( isset($wp_meta_boxes['dashboard']) ) { - 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']) ) { - unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']); - } - 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']) ) { - unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']); - } - } - } -}, 9999); - -// add widget scripts on all clearfy pages -add_action('wbcr/clearfy/page_assets', function ($id, $scripts, $styles) { - $scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/widgets.js', array('jquery')); -}, 10, 3); - -/** - * Initialize Clearfy Farewell notice system - */ -add_action('admin_init', function() { - if ( ! class_exists('WCL_Farewell') ) { - require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.farewell.php'; - } - new WCL_Farewell(); -}); - -/** - * Load farewell notice styles on dashboard - */ -add_action('admin_enqueue_scripts', function($hook) { - if ( 'index.php' === $hook || 'settings_page_quick_start-wbcr_clearfy' === $hook ) { - wp_enqueue_style('clearfy-farewell-notice', WCL_PLUGIN_URL . '/admin/assets/css/farewell-notice.css', [], WCL_Plugin::app()->getPluginVersion()); - } -}); diff --git a/wp-content/plugins/!clearfy/admin/includes/classes/class.delete-plugins-button.php b/wp-content/plugins/!clearfy/admin/includes/classes/class.delete-plugins-button.php deleted file mode 100644 index 715206ab..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/classes/class.delete-plugins-button.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @copyright (c) 16.09.2017, Webcraftic - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php'; - -class WCL_DeletePluginsButton extends WCL_InstallPluginsButton { - - /** - * @throws Exception - */ - protected function build_wordpress() { - parent::build_wordpress(); - - $this->action = 'delete'; - $this->addData( 'plugin-action', $this->action ); - $this->removeClass( 'button-primary' ); - } - - protected function build_internal() { - // nothing - } - - /** - * @param bool $echo - * - * @return string|void - */ - public function getButton() { - $button = 'get_data() ) . '>'; - - if ( $this->type == 'internal' || ! $this->isPluginInstall() || $this->isPluginActivate() ) { - $button = ''; - } - - return $button; - } -} - diff --git a/wp-content/plugins/!clearfy/admin/includes/classes/class.farewell.php b/wp-content/plugins/!clearfy/admin/includes/classes/class.farewell.php deleted file mode 100644 index 79bc698a..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/classes/class.farewell.php +++ /dev/null @@ -1,252 +0,0 @@ -base ) && ($screen->base === 'dashboard' || $screen->base === 'settings_page_quick_start-wbcr_clearfy' ) ) { - - // phpcs:disable WordPress.Security.NonceVerification.Recommended - if ( isset( $_GET['try_super_page_cache'] ) ) { - $farewell = empty( $_GET['try_super_page_cache'] ) ? time() : 0; - update_user_meta( get_current_user_id(), 'clearfy_farewell_dismissed', $farewell ); - } - // phpcs:enable WordPress.Security.NonceVerification.Recommended - - $farewell = get_user_meta( get_current_user_id(), 'clearfy_farewell_dismissed', true ); - - if ( empty( $farewell ) ) { - $this->display_detailed_notice(); - } - } - - if ( $this->is_grace_period_ended() ) { - $this->display_short_notice(); - } - } - - /** - * Compare dates since detailed notice dismissal date and now. - * - * @since 2.3.4 - * - * @return bool - */ - protected function is_grace_period_ended() { - - $dismissed = (int) get_user_meta( get_current_user_id(), 'clearfy_farewell_dismissed', true ); - if(empty($dismissed)) { - return false; - } - return (time() - $dismissed) > MONTH_IN_SECONDS; - } - - /** - * Dismissable big (Gutenberg-like) dashboard-only notice about Clearfy transition. - * - * @since 2.3.4 - */ - public function display_detailed_notice() { - - // Only people appropriate people should see it. - if ( ! current_user_can( 'install_plugins' ) ) { - return; - } - ?> - -
    - - - - - -
    -

    - -

    - -

    - -
    - -
    -
    - - - <?php esc_attr_e( 'Screenshot from the Super Page Cache interface', 'clearfy' ); ?> - -
    -
    - -
    -

    - -

    - -

    - -

    - -

    -
    - -
    -

    - - - -

    - -

    - - - -

    -
    -
    - -
    - -
    -

    - -

    - -

    -

    - -

    - is_premium(); - $show_premium_transfer = $is_premium && ( time() < strtotime( '2025-12-01 00:00:00' ) ); - ?> - -

    - - - . -

    - -

    - - - MIGRATEFROMCLRF90 - -

    - -
    - -
    -

    - - - -

    -
    -
    -
    -
    - -
    - - - -

    '; - printf( - wp_kses( - 'Important: Clearfy is being retired and will no longer receive updates or support. For a faster, more reliable website experience, we recommend switching to Super Page Cache - the modern caching solution built to deliver top performance.', - [ - 'br' => [], - 'strong' => [], - 'a' => [ - 'href' => [], - 'target' => [], - 'class' => [], - 'rel' => [], - ], - ] - ), - esc_url( admin_url( 'plugin-install.php?tab=plugin-information&plugin=wp-cloudflare-page-cache&TB_iframe=true&width=600&height=550' ) ) - ); - echo '

    '; - } -} - diff --git a/wp-content/plugins/!clearfy/admin/includes/classes/class.group.php b/wp-content/plugins/!clearfy/admin/includes/classes/class.group.php deleted file mode 100644 index 39ef5c2d..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/classes/class.group.php +++ /dev/null @@ -1,65 +0,0 @@ - - * @copyright (c) 16.09.2017, Webcraftic - * @version 1.0 - */ - - // Exit if accessed directly - if( !defined('ABSPATH') ) { - exit; - } - - class WCL_Group { - - private $group_name; - - /** - * @param string $group_name - * @throws Exception - */ - public function __construct($group_name) - { - if( empty($group_name) || !is_string($group_name) ) { - throw new Exception('Empty group_name attribute.'); - } - $this->group_name = $group_name; - } - - /** - * @param string $group_name - * @return WCL_Group - */ - public static function getInstance($group_name) - { - return new WCL_Group($group_name); - } - - /** - * @return string - */ - public function getName() - { - return $this->group_name; - } - - /** - * @return WCL_Option[] - */ - public function getOptions() - { - $options = WCL_Option::getAllOptions(); - $filter = array(); - - foreach($options as $option) { - if( $option->hasGroup($this->group_name) ) { - $filter[] = $option; - } - } - - return $filter; - } - } - diff --git a/wp-content/plugins/!clearfy/admin/includes/classes/class.install-plugins-button.php b/wp-content/plugins/!clearfy/admin/includes/classes/class.install-plugins-button.php deleted file mode 100644 index f8529c9d..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/classes/class.install-plugins-button.php +++ /dev/null @@ -1,370 +0,0 @@ - - * @copyright (c) 16.09.2017, Webcraftic - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -class WCL_InstallPluginsButton { - - protected $type; - protected $plugin_slug; - - protected $classes = [ - 'button', - 'wbcr-clr-proccess-button', - 'wbcr-clr-update-component-button' - ]; - protected $data = []; - protected $base_path; - - protected $action; - - protected $url; - - /** - * @param string $group_name - * - * @throws Exception - */ - public function __construct($type, $plugin_slug) - { - if( empty($type) || !is_string($plugin_slug) ) { - throw new Exception('Empty type or plugin_slug attribute.'); - } - $this->type = $type; - $this->plugin_slug = $plugin_slug; - - if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) { - if( strpos(rtrim(trim($this->plugin_slug)), '/') !== false ) { - $this->base_path = $this->plugin_slug; - $base_path_parts = explode('/', $this->base_path); - if( sizeof($base_path_parts) === 2 ) { - $this->plugin_slug = $base_path_parts[0]; - } - } else { - $this->base_path = $this->get_plugin_base_path_by_slug($this->plugin_slug); - } - - $this->build_wordpress(); - } else if( $this->type == 'internal' ) { - $this->build_internal(); - } else { - throw new Exception('Invalid button type.'); - } - - // Set default data - $this->addData('storage', $this->type); - $this->addData('i18n', WCL_Helper::getEscapeJson($this->get_i18n())); - $this->addData('wpnonce', wp_create_nonce('updates')); - } - - /** - * @return bool - */ - public function isPluginActivate() - { - if( ($this->type == 'wordpress' || $this->type == 'creativemotion') && $this->isPluginInstall() ) { - require_once ABSPATH . '/wp-admin/includes/plugin.php'; - - return is_plugin_active($this->base_path); - } else if( $this->type == 'internal' ) { - $preinsatall_components = WCL_Plugin::app()->getPopulateOption('deactive_preinstall_components', []); - - return !in_array($this->plugin_slug, $preinsatall_components); - } - - return false; - } - - /** - * @return bool - */ - public function isPluginInstall() - { - if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) { - if( empty($this->base_path) ) { - return false; - } - - // Check if the function get_plugins() is registered. It is necessary for the front-end - // usually get_plugins() only works in the admin panel. - if( !function_exists('get_plugins') ) { - require_once ABSPATH . 'wp-admin/includes/plugin.php'; - } - - $plugins = get_plugins(); - - if( isset($plugins[$this->base_path]) ) { - return true; - } - } else if( $this->type == 'internal' ) { - return true; - } - - return false; - } - - /** - * @param $class - * - * @throws Exception - */ - public function addClass($class) - { - if( !is_string($class) ) { - throw new Exception('Attribute class must be a string.'); - } - $this->classes[] = $class; - } - - /** - * @param $class - * - * @return bool - * @throws Exception - */ - public function removeClass($class) - { - if( !is_string($class) ) { - throw new Exception('Attribute class must be a string.'); - } - $key = array_search($class, $this->classes); - if( isset($this->classes[$key]) ) { - unset($this->classes[$key]); - - return true; - } - - return false; - } - - /** - * @param $name - * @param $value - * - * @throws Exception - */ - public function addData($name, $value) - { - if( !is_string($name) || !is_string($value) ) { - throw new Exception('Attributes name and value must be a string.'); - } - - $this->data[$name] = $value; - } - - /** - * @param $name - * - * @return bool - * @throws Exception - */ - public function removeData($name) - { - if( !is_string($name) ) { - throw new Exception('Attribute name must be a string.'); - } - - if( isset($this->data[$name]) ) { - unset($this->data[$name]); - - return true; - } - - return false; - } - - /** - * Print an install button - * - * @throws \Exception - * @since 1.5.0 - * @author Alexander Kovalev - */ - public function renderButton() - { - echo $this->getButton(); - } - - /** - * @return string - */ - public function getButton() - { - $i18n = $this->get_i18n(); - - $button = 'get_data()) . '>' . $i18n[$this->action] . ''; - - return $button; - } - - /** - * @return string - * @throws Exception - */ - public function getLink() - { - $this->removeClass('button'); - $this->removeClass('button-default'); - $this->removeClass('button-primary'); - - //$this->addClass('link'); - $this->addClass('button-link'); - - return $this->getButton(); - } - - /** - * Print an install a link - * - * @throws \Exception - * @since 1.5.0 - * @author Alexander Kovalev - */ - public function renderLink() - { - echo $this->getLink(); - } - - /** - * @return array - * @since 1.5.0 - * @author Alexander Kovalev - */ - protected function get_data() - { - $data_to_print = []; - - foreach((array)$this->data as $key => $value) { - $data_to_print[$key] = 'data-' . esc_attr($key) . '="' . esc_attr($value) . '"'; - } - - return $data_to_print; - } - - /** - * @return array - * @since 1.5.0 - * @author Alexander Kovalev - */ - protected function get_classes() - { - return array_map('esc_attr', $this->classes); - } - - /** - * @throws \Exception - * @since 1.5.0 - * @author Alexander Kovalev - */ - protected function build_wordpress() - { - if( ('wordpress' === $this->type || 'creativemotion' === $this->type) && !empty($this->base_path) ) { - - $this->action = 'install'; - - if( $this->isPluginInstall() ) { - $this->action = 'deactivate'; - if( !$this->isPluginActivate() ) { - $this->action = 'activate'; - } - } - - $this->addData('plugin-action', $this->action); - $this->addData('slug', $this->plugin_slug); - $this->addData('plugin', $this->base_path); - - if( $this->action == 'activate' ) { - $this->addClass('button-primary'); - } else { - $this->addClass('button-default'); - } - } - } - - /** - * Configurate button of internal components - * - * @throws \Exception - * @since 1.5.0 - * @author Alexander Kovalev - */ - protected function build_internal() - { - if( $this->type != 'internal' ) { - return; - } - - $this->action = 'activate'; - - if( $this->isPluginActivate() ) { - $this->action = 'deactivate'; - } - - $this->addData('plugin-action', $this->action); - $this->addData('plugin', $this->plugin_slug); - - if( $this->action == 'activate' ) { - $this->addClass('button-primary'); - } else { - $this->addClass('button-default'); - } - } - - /** - * Internalization for action buttons - * - * @return array - * @since 1.5.0 - * @author Alexander Kovalev - */ - protected function get_i18n() - { - return [ - 'activate' => __('Activate', 'clearfy'), - 'install' => __('Install', 'clearfy'), - 'deactivate' => __('Deactivate', 'clearfy'), - 'delete' => __('Delete', 'clearfy'), - 'loading' => __('Please wait...', 'clearfy'), - 'preparation' => __('Preparation...', 'clearfy'), - 'read' => __('Read more', 'clearfy') - ]; - } - - - /** - * Allows you to get the base path to the plugin in the directory wp-content/plugins/ - * - * @param $slug - slug for example "clearfy", "hide-login-page" - * - * @return int|null|string - "clearfy/clearfy.php" - */ - protected function get_plugin_base_path_by_slug($slug) - { - // Check if the function get_plugins() is registered. It is necessary for the front-end - // usually get_plugins() only works in the admin panel. - if( !function_exists('get_plugins') ) { - require_once ABSPATH . 'wp-admin/includes/plugin.php'; - } - - $plugins = get_plugins(); - - foreach($plugins as $base_path => $plugin) { - if( strpos($base_path, rtrim(trim($slug))) !== false ) { - return $base_path; - } - } - - return null; - } -} - diff --git a/wp-content/plugins/!clearfy/admin/includes/classes/class.option.php b/wp-content/plugins/!clearfy/admin/includes/classes/class.option.php deleted file mode 100644 index c3b9615f..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/classes/class.option.php +++ /dev/null @@ -1,107 +0,0 @@ - - * @copyright (c) 16.09.2017, Webcraftic - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WCL_Option { - - private $name; - private $title; - private $value; - private $values; - private $tags; - - /** - * @param array $option_data - * - * @throws Exception - */ - public function __construct( array $option_data ) { - if ( empty( $option_data ) ) { - throw new Exception( 'Empty group_name attribute.' ); - } - - foreach ( $option_data as $key => $value ) { - $this->$key = $value; - } - } - - /** - * @return mixed - */ - public function getName() { - return $this->name; - } - - /** - * @return mixed - */ - public function getTitle() { - return $this->title; - } - - /** - * @param null $group_name - * - * @return array - */ - public function getValue( $group_name = null ) { - if ( - ! empty( $group_name ) - && is_array( $this->values ) - && isset( $this->values[ $group_name ] ) - ) { - return $this->values[ $group_name ]; - } - - return ! empty( $this->values ) - ? $this->values - : []; - } - - /** - * @return mixed - */ - public function getTags() { - return $this->tags; - } - - /** - * @param $group_name - * - * @return bool - */ - public function hasGroup( $group_name ) { - if ( ! empty( $this->tags ) && in_array( $group_name, $this->tags ) ) { - return true; - } - - return false; - } - - /** - * @return WCL_Option[] - */ - public static function getAllOptions() { - $all_options = require( WCL_PLUGIN_DIR . '/admin/includes/options.php' ); - $result = []; - - if ( ! empty( $all_options ) ) { - foreach ( $all_options as $option_data ) { - $result[] = new WCL_Option( $option_data ); - } - } - - return $result; - } -} - diff --git a/wp-content/plugins/!clearfy/admin/includes/compatibility.php b/wp-content/plugins/!clearfy/admin/includes/compatibility.php deleted file mode 100644 index 65d460c5..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/compatibility.php +++ /dev/null @@ -1,129 +0,0 @@ - - * @copyright (c) 22.10.2018, Webcraftic - * @version 1.0 - */ - -add_action( 'init', function () { - if ( is_admin() ) { - if ( defined( 'WIO_PLUGIN_ACTIVE' ) ) { - if ( ! file_exists( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' ) ) { - return; - } - - $plugin = get_plugin_data( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' ); - - if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.8', '<=' ) ) { - $notice = __( 'Please update the plugin Robin image Optimizer to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' ); - /** - * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина. - * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина, - * иначе вновь активированные компоненты не будет зайдествованы в работе плагина. - * - * @param Wbcr_Factory480_Plugin $plugin - * @param \WBCR\Factory_Templates_134\Impressive $obj - * - * @return bool - */ - add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) { - $obj->printErrorNotice( $notice ); - }, 10, 2 ); - - // Специально для преидущей версии фреймворка (407) - add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) { - $obj->printErrorNotice( $notice ); - }, 10, 2 ); - } - } - - if ( defined( 'WHLP_PLUGIN_ACTIVE' ) ) { - if ( ! file_exists( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' ) ) { - return; - } - - $plugin = get_plugin_data( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' ); - - if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.5', '<=' ) ) { - $notice = __( 'Please update the plugin Hide login page to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' ); - /** - * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина. - * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина, - * иначе вновь активированные компоненты не будет зайдествованы в работе плагина. - * - * @param Wbcr_Factory480_Plugin $plugin - * @param \WBCR\Factory_Templates_134\Impressive $obj - * - * @return bool - */ - add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) { - $obj->printErrorNotice( $notice ); - }, 10, 2 ); - - // Специально для преидущей версии фреймворка (407) - add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) { - $obj->printErrorNotice( $notice ); - }, 10, 2 ); - } - } - - if ( defined( 'WCLRP_PLUGIN_ACTIVE' ) ) { - add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) { - if ( $plugin_name != WGZ_Plugin::app()->getPluginName() ) { - return $notices; - } - - if ( ! current_user_can( 'update_plugins' ) ) { - return $notices; - } - - $nonce_action = 'upgrade-plugin_' . WCLP_PLUGIN_BASE; - $upgrade_url = wp_nonce_url( self_admin_url( "update.php?action=upgrade-plugin&plugin=" . urlencode( WCLP_PLUGIN_BASE ) ), $nonce_action ); - $notice_text = sprintf( __( 'You must upgrade the premium version of the Clearfy plugin to version 1.1.2, since the new Clearfy release isn\'t compatible with the previous version of the premium plugin.', 'clearfy' ), $upgrade_url ); - - $notices[] = [ - 'id' => 'clearfy-package_-compatibility-113', - 'type' => 'error', - 'dismissible' => false, - 'dismiss_expires' => 0, - 'text' => '

    ' . __( 'Clearfy', 'clearfy' ) . ': ' . $notice_text . '

    ' - ]; - - return $notices; - }, 10, 2 ); - } - - if ( defined( 'WCLP_PLUGIN_ACTIVE' ) ) { - add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) { - if ( $plugin_name != WCL_Plugin::app()->getPluginName() ) { - return $notices; - } - - if ( ! current_user_can( 'update_plugins' ) ) { - return $notices; - } - - if ( WCL_Plugin::app()->premium->is_install_package() ) { - $package = $this->premium->get_package_data(); - if ( version_compare( $package['version'], "1.4.3", "<" ) ) { - $nonce_action = 'upgrade-plugin_' . WCLP_PLUGIN_BASE; - $upgrade_url = wp_nonce_url( self_admin_url( "update.php?action=upgrade-plugin&plugin=" . urlencode( WCLP_PLUGIN_BASE ) ), $nonce_action ); - $notice_text = sprintf( __( 'You must upgrade the premium version of the Clearfy plugin to version 1.4.2, since the new Clearfy release isn\'t compatible with the previous version of the premium plugin.', 'clearfy' ), $upgrade_url ); - - $notices[] = [ - 'id' => 'clearfy-package_-compatibility-143', - 'type' => 'error', - 'dismissible' => false, - 'dismiss_expires' => 0, - 'text' => '

    ' . __( 'Clearfy', 'clearfy' ) . ': ' . $notice_text . '

    ' - ]; - } - } - - return $notices; - }, 10, 2 ); - } - } -}, 30 ); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/includes/options.php b/wp-content/plugins/!clearfy/admin/includes/options.php deleted file mode 100644 index ead8996c..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/options.php +++ /dev/null @@ -1,389 +0,0 @@ - - * @copyright (c) 18.09.2017, Webcraftic - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -return apply_filters( 'wbcr_clearfy_group_options', [ - /** ------------------------ Google services ----------------------------- */ [ - 'name' => 'lazy_load_google_fonts', - 'title' => __( 'Google Fonts asynchronous', 'clearfy' ), - 'tags' => [ 'optimize_performance' ] - ], - [ - 'name' => 'disable_google_fonts', - 'title' => __( 'Disable Google Fonts', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'remove_iframe_google_maps', - 'title' => __( 'Remove iframe Google maps', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'exclude_from_disable_google_maps', - 'title' => __( 'Exclude pages from Disable Google Maps filter', 'clearfy' ), - 'tags' => [] - ], - /** ------------------------ End google services ----------------------------- */ [ - 'name' => 'disable_google_maps', - 'title' => __( 'Disable Google maps', 'clearfy' ), - 'tags' => [] - ], - /** ------------------------ Performance page ----------------------------- */ /*array( - 'name' => 'remove_xfn_link', - 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'), - 'tags' => array() - ),*/ [ - 'name' => 'lazy_load_font_awesome', - 'title' => __( 'Font Awesome asynchronous', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_dashicons', - 'title' => __( 'Disable Dashicons', 'clearfy' ), - 'tags' => [ 'hide_my_wp' ] - ], - [ - 'name' => 'disable_gravatars', - 'title' => __( 'Disable gravatars', 'clearfy' ), - 'tags' => [] - ], - /*array( - 'name' => 'disable_json_rest_api', - 'title' => __('Remove REST API Links', 'clearfy'), - 'tags' => array() - ),*/ [ - 'name' => 'disable_emoji', - 'title' => __( 'Disable Emojis', 'clearfy' ), - 'tags' => [ 'optimize_performance', 'clear_code', 'hide_my_wp' ] - ], - [ - 'name' => 'remove_bloat', - 'title' => __( 'Remove bloat in head', 'clearfy' ), - 'tags' => [ 'optimize_performance', 'clear_code', 'hide_my_wp' ] - ], - /*array( - 'name' => 'remove_rsd_link', - 'title' => __('Remove RSD Link', 'clearfy'), - 'tags' => array('optimize_performance', 'clear_code', 'hide_my_wp') - ), - array( - 'name' => 'remove_wlw_link', - 'title' => __('Remove wlwmanifest Link', 'clearfy'), - 'tags' => array('optimize_performance', 'clear_code', 'hide_my_wp') - ), - array( - 'name' => 'remove_shortlink_link', - 'title' => __('Remove Shortlink', 'clearfy'), - 'tags' => array('optimize_performance', 'clear_code', 'hide_my_wp') - ), - array( - 'name' => 'remove_adjacent_posts_link', - 'title' => __('Remove links to previous, next post', 'clearfy'), - 'tags' => array('optimize_performance', 'clear_code', 'hide_my_wp') - ), - array( - 'name' => 'remove_recent_comments_style', - 'title' => __('Remove .recentcomments styles', 'clearfy'), - 'tags' => array('optimize_performance', 'clear_code', 'hide_my_wp') - ),*/ /** ------------------------ End Performance page ----------------------------- */ [ - 'name' => 'content_image_auto_alt', - 'title' => __( 'Automatically set the alt attribute', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'set_last_modified_headers', - 'title' => __( 'Automatically insert the Last Modified header', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'if_modified_since_headers', - 'title' => __( 'Return an If-Modified-Since responce', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'remove_last_item_breadcrumb_yoast', - 'title' => __( 'Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'yoast_remove_image_from_xml_sitemap', - 'title' => sprintf( __( 'Remove the tag %s from XML site map', 'clearfy' ), 'image:image' ), - 'tags' => get_locale() == 'ru_RU' ? [ 'clear_code' ] : [] - ], - [ - 'name' => 'yoast_remove_json_ld_search', - 'title' => __( 'Disable JSON-LD sitelinks searchbox', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'yoast_remove_json_ld_output', - 'title' => __( 'Disable Yoast Structured Data', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'yoast_remove_head_comment', - 'title' => sprintf( __( 'Remove comment from %s section', 'clearfy' ), 'head' ), - 'tags' => [ 'clear_code' ] - ], - [ - 'name' => 'redirect_archives_date', - 'title' => __( 'Remove archives date', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'redirect_archives_author', - 'title' => __( 'Remove author archives ', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'redirect_archives_tag', - 'title' => __( 'Remove archives tag', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'attachment_pages_redirect', - 'title' => __( 'Remove attachment pages', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'remove_single_pagination_duplicate', - 'title' => __( 'Remove post pagination', 'clearfy' ), - 'tags' => [ 'recommended' ] - ], - [ - 'name' => 'remove_replytocom', - 'title' => __( 'Remove ?replytocom', 'clearfy' ), - 'tags' => [ 'seo_optimize' ] - ], - [ - 'name' => 'remove_meta_generator', - 'title' => __( 'Remove meta generator', 'clearfy' ), - 'tags' => [ 'clear_code', 'defence', 'hide_my_wp' ] - ], - [ - 'name' => 'protect_author_get', - 'title' => __( 'Hide author login', 'clearfy' ), - 'tags' => [ 'defence', 'hide_my_wp' ] - ], - [ - 'name' => 'change_login_errors', - 'title' => __( 'Hide errors when logging into the site', 'clearfy', 'hide_my_wp' ), - 'tags' => [ 'defence', 'hide_my_wp' ] - ], - [ - 'name' => 'remove_style_version', - 'title' => __( 'Remove Version from Stylesheet', 'clearfy', 'hide_my_wp' ), - 'tags' => [ 'optimize_performance', 'clear_code', 'defence', 'hide_my_wp' ] - ], - [ - 'name' => 'remove_js_version', - 'title' => __( 'Remove Version from Script', 'clearfy' ), - 'tags' => [ 'optimize_performance', 'clear_code', 'defence', 'hide_my_wp' ] - ], - [ - 'name' => 'remove_unneeded_widget_page', - 'title' => __( 'Remove the "Pages" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_calendar', - 'title' => __( 'Remove calendar widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_tag_cloud', - 'title' => __( 'Remove the "Cloud of tags" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_archives', - 'title' => __( 'Remove the "Archives" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_links', - 'title' => __( 'Remove the "Links" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_meta', - 'title' => __( 'Remove the "Meta" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_search', - 'title' => __( 'Remove the "Search" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_text', - 'title' => __( 'Remove the "Text" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_categories', - 'title' => __( 'Remove the "Categories" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_recent_posts', - 'title' => __( 'Remove the "Recent Posts" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_recent_comments', - 'title' => __( 'Remove the "Recent Comments" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_text', - 'title' => __( 'Remove the "Text" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_rss', - 'title' => __( 'Remove the "RSS" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_menu', - 'title' => __( 'Remove the "Menu" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ - 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera', - 'title' => __( 'Remove the "Twenty Eleven Ephemera" widget', 'clearfy' ), - 'tags' => [ 'remove_default_widgets' ] - ], - [ 'name' => 'revisions_disable', 'title' => __( 'Disable revision', 'clearfy' ), 'tags' => [] ], - [ 'name' => 'revision_limit', 'title' => __( 'Limit Post Revisions', 'clearfy' ), 'tags' => [] ], - [ 'name' => 'last_modified_exclude', 'title' => __( 'Exclude pages:', 'clearfy' ), 'tags' => [] ], - [ - 'name' => 'right_robots_txt', - 'title' => __( 'Create right robots.txt', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'robots_txt_text', - 'title' => __( 'You can edit the robots.txt file in the box below:', 'clearfy' ), - 'tags' => [] - ], - [ 'name' => 'quick_modes', 'title' => __( 'Quick mode', 'clearfy' ), 'tags' => [] ], - [ - 'name' => 'remove_jquery_migrate', - 'title' => __( 'Remove jQuery Migrate', 'clearfy' ), - 'tags' => [] - ], - [ 'name' => 'disable_embeds', 'title' => __( 'Disable Embeds', 'clearfy' ), 'tags' => [] ], - [ 'name' => 'disable_feed', 'title' => __( 'Disable RSS feeds', 'clearfy' ), 'tags' => [] ], - [ - 'name' => 'remove_unnecessary_link_admin_bar', - 'title' => __( 'Removes links to wordpress.org site from the admin bar', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'remove_style_version', - 'title' => __( 'Remove Version from Stylesheet', 'clearfy' ), - 'tags' => [ 'hide_my_wp' ] - ], - [ - 'name' => 'remove_js_version', - 'title' => __( 'Remove Version from Script', 'clearfy' ), - 'tags' => [ 'hide_my_wp' ] - ], - [ - 'name' => 'remove_version_exclude', - 'title' => __( 'Eclude stylesheet/script file names', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'enable_wordpres_sanitize', - 'title' => __( 'Enable Sanitization of WordPress', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_admin_bar', - 'title' => __( 'Disable admin top bar', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_admin_bar_logo', - 'title' => __( 'Remove admin bar WP logo', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'replace_howdy_welcome', - 'title' => __( 'Replace "Howdy" text with "Welcome"', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'revisions_disable', - 'title' => __( 'Disable revision', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'revision_limit', - 'title' => __( 'Limit Post Revisions', 'update-services' ), - 'tags' => [] - ], - [ - 'name' => 'disable_post_autosave', - 'title' => __( 'Disable autosave', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_texturization', - 'title' => __( 'Disable Texturization - Smart Quotes', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_auto_correct_dangit', - 'title' => __( 'Disable capitalization in Wordpress branding', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_auto_paragraph', - 'title' => __( 'Disable auto inserted paragraphs (i.e. p tags)', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'disable_heartbeat', - 'title' => __( 'Disable Heartbeat', 'update-services' ), - 'tags' => [] - ], - [ - 'name' => 'heartbeat_frequency', - 'title' => __( 'Heartbeat frequency', 'update-services' ), - 'tags' => [] - ], - [ - 'name' => 'remove_html_comments', - 'title' => __( 'Remove html comments', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'deactive_preinstall_components', - 'title' => __( 'Deactivate preinstall components', 'clearfy' ), - 'tags' => [] - ], - [ - 'name' => 'freemius_activated_addons', - 'title' => __( 'Freemius activated addons', 'clearfy' ), - 'tags' => [] - ], - /** ------------------------ Clearfy settings ----------------------------- */ [ - 'name' => 'disable_clearfy_extra_menu', - 'title' => __( 'Disable menu in adminbar', 'clearfy' ), - 'tags' => [] - ] - -] ); diff --git a/wp-content/plugins/!clearfy/admin/includes/sidebar-widgets.php b/wp-content/plugins/!clearfy/admin/includes/sidebar-widgets.php deleted file mode 100644 index a8bfbd26..00000000 --- a/wp-content/plugins/!clearfy/admin/includes/sidebar-widgets.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @copyright (c) 01.12.2018, Webcraftic - * @version 1.0 - */ - -/** - * Return premium widget markup - * - * @return string - */ -function wbcr_clearfy_get_sidebar_premium_widget() { - return; - - $buy_premium_url = WCL_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ); - - ob_start(); - ?> -
    -

    - -

    -
    -

    Clearfy Business 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' ) ?>

    -

    - - - - - - -
    -
    - get_support()->get_contacts_url( true, 'support_widget' ); - $page_hot_support_url = WCL_Plugin::app()->get_support()->get_tracking_page_url( 'hot-support', 'support_widget' ); - - ob_start(); - ?> -
    -

    -
    -

    - -

    -
      -
    • - -
    • -
    • - - create ticket in hot support that we responded instantly.', 'clearfy' ), $page_hot_support_url ); ?> -
    • -
    -
    -
    - , Alexander Kovalev - * @copyright (c) 17.08.2019, Webcraftic - * @version 1.0 - */ - -class WCL_Page extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * Requests assets (js and css) for the page. - * - * @return void - * @since 1.0.0 - * @see FactoryPages480_AdminPage - * - */ - public function assets($scripts, $styles) - { - parent::assets($scripts, $styles); - - $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/components.css'); - - /** - * Подгружаем стили для вижета оптимизации изображений, если не установли плагин оптимизации изображений - */ - if( !defined('WIO_PLUGIN_ACTIVE') ) { - $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/base-statistic.css'); - } - - $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/general.css'); - $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js', [], 'wclearfy-general'); - - - $params = array( - //'ajaxurl' => admin_url('admin-ajax.php'), - 'flush_cache_url' => $this->getActionUrl('flush-cache-and-rules', array('_wpnonce' => wp_create_nonce('wbcr_factory_' . $this->getResultId() . '_flush_action'))), - 'ajax_nonce' => wp_create_nonce('wbcr_clearfy_ajax_quick_start_nonce'), - 'import_options_nonce' => wp_create_nonce('wbcr_clearfy_import_options'), - 'i18n' => array( - 'success_update_settings' => __('Settings successfully updated!', 'clearfy'), - 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy') - ) - ); - $this->scripts->localize('wbcr_clearfy_ajax', $params); - } - - /** - * Действие выполняется для всех страниц Clearfy и его компонентах. - * Это простое предложение перейти на PRO версию. - */ - public function multisiteProAction() - { - if( is_multisite() && $this->plugin->isNetworkActive() ) { - - $license_page_url = $this->getBaseUrl('clearfy_license'); - $upgrade_url = $this->plugin->get_support()->get_pricing_url(true, 'multisite_save_settings'); - - $html = '
    '; - $html .= '
    '; - $html .= '

    ' . __('Upgrade to Clearfy Business', 'wbcr_factory_templates_134') . '

    '; - $html .= '

    ' . __('Oops... Sorry for the inconvenience caused!', 'wbcr_factory_templates_134') . '

    '; - $html .= '

    ' . __('Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_templates_134') . '

    '; - $html .= '

    ' . __('You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_templates_134') . '

    '; - $html .= '

    '; - $html .= '' . __('Activate license ', 'wbcr_factory_templates_134') . ' '; - $html .= '' . __('Upgrade to Clearfy Business', 'wbcr_factory_templates_134') . ''; - $html .= '

    '; - $html .= '
    '; - $html .= '
    '; - - $this->showPage($html); - - return; - } - - $this->redirectToAction('index'); - } - - -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-advanced.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-advanced.php deleted file mode 100644 index 29193067..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-advanced.php +++ /dev/null @@ -1,195 +0,0 @@ -menu_title = __('Advanced', 'clearfy'); - $this->page_menu_short_description = __('Useful tweaks', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - - $options = array(); - - $options[] = array( - 'type' => 'html', - 'html' => '
    ' . '' . __('Other', 'clearfy') . '' . '

    ' . __('In this group of settings, you can manage the adminbar.', 'clearfy') . '

    ' . '
    ' - ); - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_feed', - 'title' => __('Disable RSS feeds', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('By default, WordPress generates all types of different RSS feeds for your site. While RSS feeds can be useful if you are running a blog, businesses might not always utilize these. Not every site out there has a blog.', 'clearfy') . '
    Clearfy: ' . sprintf(__('Removes a link to the RSS-feed from the %s section, closes and puts the redirect from all RSS-feeds.', 'clearfy'), '<head>'), - 'default' => false, - 'eventsOn' => [ - 'show' => '.factory-control-disabled_feed_behaviour' - ], - 'eventsOff' => [ - 'hide' => '.factory-control-disabled_feed_behaviour' - ] - ]; - - $options[] = [ - 'type' => 'dropdown', - 'way' => 'buttons', - 'name' => 'disabled_feed_behaviour', - 'data' => [ - ['redirect_301', __('Redirect 301', 'clearfy')], - ['redirect_404', __('Page 404', 'clearfy')], - ], - 'title' => __('Redirect feed requests', 'clearfy'), - 'hint' => __('Forward all requests to page 404 or to the main page through 301 redirects.', 'clearfy'), - //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => 'redirect_301' - ]; - - //============================================================ - // ADMINBAR MANAGER COMPONENT - //============================================================ - - if( $this->plugin->isActivateComponent('adminbar_manager') ) { - $options[] = array( - 'type' => 'html', - 'html' => '
    ' . '' . __('Admin bar', 'clearfy') . '' . '

    ' . __('In this group of settings, you can manage the adminbar.', 'clearfy') . '

    ' . '
    ' - ); - - $options[] = array( - 'type' => 'dropdown', - 'name' => 'disable_admin_bar', - 'way' => 'buttons', - 'title' => __('Disable admin top bar', 'clearfy'), - 'data' => array( - array('enable', __('Default enable', 'clearfy')), - array('for_all_users', __('For all users', 'clearfy')), - array( - 'for_all_users_except_administrator', - __('For all users except administrator', 'clearfy') - ) - ), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('In some cases, you need to disable the floating top admin panel. You can disable this panel.', 'clearfy') . '
    Clearfy: ' . __('Disable admin top bar.', 'clearfy'), - 'default' => 'enable', - ); - } - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Classic editor and Gutenberg', 'clearfy') . '' . '

    ' . __('In this group of options, you can manage revisions and post autosave.', 'clearfy') . '

    ' . '
    ' - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'revisions_disable', - 'title' => __('Disable revision', 'clearfy'), - 'default' => false, - 'eventsOn' => [ - 'hide' => '.factory-control-revision_limit' - ], - 'eventsOff' => [ - 'show' => '.factory-control-revision_limit' - ], - ]; - - $options[] = [ - 'type' => 'dropdown', - 'name' => 'revision_limit', - 'title' => __('Limit Post Revisions', 'clearfy'), - 'data' => [ - ['default', __('Wordpress default', 'clearfy')], - ['15', '15 ' . __('revisions', 'clearfy')], - ['20', '20 ' . __('revisions', 'clearfy')], - ['25', '25 ' . __('revisions', 'clearfy')], - ['30', '30 ' . __('revisions', 'clearfy')], - ['35', '35 ' . __('revisions', 'clearfy')], - ['40', '40 ' . __('revisions', 'clearfy')], - ['45', '45 ' . __('revisions', 'clearfy')], - ['50', '50 ' . __('revisions', 'clearfy')], - ['55', '55 ' . __('revisions', 'clearfy')], - ['60', '60 ' . __('revisions', 'clearfy')] - ], - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('WordPress automatically saves revisions when you are working on posts and pages. These can begin to add up pretty quick. By default, there is no limit in place. We have seen posts with over 1,000 revisions. Multiply this by 50 pages and suddenly you have over 50,000 revisions sitting in your database. The problem with this is that you will most likely never use them and they can start slowing down your database as well as using disk space. -So we recommend either disabling or limiting your revisions. ', 'clearfy'), - 'default' => 'default' - ]; - - if( version_compare(get_bloginfo('version'), '5.0', '>=') ) { - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'gutenberg_autosave_control', - 'title' => __('Gutenberg autosave control', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('By activating this option autosave feature in the Gutenberg editor will be disabled. Alternatively it also provides options in the editor to select a longer autosave interval time than the default 10 seconds.', 'clearfy'), - 'default' => false - ]; - } else { - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_post_autosave', - 'title' => __('Disable autosave', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('WordPress by default automatically saves a draft every 60 seconds (1 minute). There are reasons why you might want to change this.', 'clearfy') . '
    Clearfy: ' . __('Disables automatic saving of drafts.', 'clearfy'), - 'default' => false - ]; - } - - $formOptions = array(); - - $formOptions[] = array( - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ); - - return apply_filters('wbcr_clr_additionally_form_options', $formOptions, $this); - } -} diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-clearfy-settings.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-clearfy-settings.php deleted file mode 100644 index b51def1a..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-clearfy-settings.php +++ /dev/null @@ -1,237 +0,0 @@ -menu_title = __('Clearfy Settings', 'clearfy'); - $this->page_menu_short_description = __('Useful tweaks', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - - $options = []; - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Advanced settings', 'clearfy') . '' . '

    ' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '

    ' . '
    ' - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_clearfy_extra_menu', - 'title' => __('Disable menu in adminbar', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'], - 'hint' => __('This setting allows you to disable the additional menu of the Clearfy plugin, in the admin bar. This menu is required to work with the Minify and Combine and Assets Manager components.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'complete_uninstall', - 'title' => __('Complete Uninstall', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __("When the plugin is deleted from the Plugins menu, also delete all plugin settings.", 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Import/Export', 'clearfy') . '' . '

    ' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '

    ' . '
    ' - ]; - - $options[] = [ - 'type' => 'html', - 'html' => [$this, 'export'] - ]; - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Support', 'clearfy') . '' . '

    ' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '

    ' . '
    ' - ]; - - $options[] = [ - 'type' => 'html', - 'html' => [$this, 'supports'] - ]; - - $formOptions = []; - - $formOptions[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters('wbcr/clearfy/settings_form_options', $formOptions, $this); - } - - public function export() - { - ?> -
    -

    - - - -

    -
    - -
    -

    -
      -
    1. -

      -

      - -

      -
    2. -
    3. -

      support forum, include the debug report into the message body.', 'clearfy'), "https://forum.webcraftic.com"); ?>

      -
    4. -
    -

    -
    - " - . "
    " . "
    " . " Config: " . "
    " . "    | php " . phpversion() . " " . php_sapi_name() . " / zend engine " . zend_version() . "
    " . "    | Server Timezone: " . date_default_timezone_get() . "
    " . " Load: " . "
    " . "    | Memory: {$memory_avail} (avail) / {$memory_used}M (used) / {$memory_peak}M (peak)" . "
    " . "    | Time: {$run_time}s    | {$pps} req/sec" . "
    " . "Url: " . "
    " . "    |" . "
    " . "    | Agent: " . (@$_SERVER["HTTP_USER_AGENT"]) . "
    " . "Version Control: " . "
    " . "   
    " . "
    "; - } - - $debug .= "Plugins
    "; - $debug .= "=====================
    "; - - $plugins = get_plugins(); - - require_once ABSPATH . '/wp-admin/includes/plugin.php'; - - foreach($plugins as $path => $plugin) { - if( is_plugin_active($path) ) { - $debug .= $plugin['Name'] . '
    '; - } - } - - return $debug; - } - - /** - * Generates a report about the system and plug-in error - * - * @return string - */ - public function gererateReportAction() - { - if( !(isset( $_GET[ '_wpnonce' ] ) && wp_verify_nonce( $_GET[ '_wpnonce' ], 'gererate_report' )) - || !WCL_Plugin::app()->currentUserCan() ) { - wp_die(__('You do not have sufficient permissions to perform this action!', 'clearfy')); - } - - require_once(WCL_PLUGIN_DIR . '/includes/classes/class.zip-archive.php'); - - $reposts_dir = WCL_PLUGIN_DIR . '/reports'; - $reports_temp = $reposts_dir . '/temp'; - - if( !file_exists($reposts_dir) ) { - mkdir($reposts_dir, 0777, true); - } - - if( !file_exists($reports_temp) ) { - mkdir($reports_temp, 0777, true); - } - - $file = fopen($reports_temp . '/site-info.html', 'w+'); - fputs($file, $this->getDebugReport()); - fclose($file); - - $download_file_name = 'webcraftic-clearfy-report-' . date('Y.m.d-H.i.s') . '.zip'; - $download_file_path = WCL_PLUGIN_DIR . '/reports/' . $download_file_name; - - Wbcr_ExtendedZip::zipTree(WCL_PLUGIN_DIR . '/reports/temp', $download_file_path, ZipArchive::CREATE); - - array_map('unlink', glob(WCL_PLUGIN_DIR . "/reports/temp/*")); - - wp_redirect(WCL_PLUGIN_URL . '/reports/' . $download_file_name); - exit; - } -} diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-components-license.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-components-license.php deleted file mode 100644 index ba28aa7e..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-components-license.php +++ /dev/null @@ -1,206 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WCL_ComponentsLicensePage extends WCL_Page { - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $id = 'clearfy_components_license'; - - /** - * {@inheritdoc} - * - * @var string - */ - public $type = 'page'; - - /** - * {@inheritdoc} - * - * @var string - */ - public $plan_name; - - /** - * {@inheritdoc} - */ - public $menu_title; - - /** - * {@inheritdoc} - */ - public $page_menu_short_description; - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $page_parent_page; - - /** - * @var int - */ - public $page_menu_position = 0; - - /** - * {@inheritdoc} - * - * @var bool - */ - public $show_right_sidebar_in_options = false; - - /** - * WCL_LicensePage constructor. - * - * @param \Wbcr_Factory480_Plugin $plugin - * - * @author Alexander Kovalev - * - */ - public function __construct(Wbcr_Factory480_Plugin $plugin) - { - $this->menu_title = __('License', 'robin-image-optimizer'); - $this->page_menu_short_description = __('Product activation', 'robin-image-optimizer'); - $this->plan_name = __('Clearfy Business', 'robin-image-optimizer'); - - parent::__construct($plugin); - } - - /** - * Requests assets (js and css) for the page. - * - * @return void - * @since 1.0.0 - * @see FactoryPages480_AdminPage - * - */ - /*public function assets($scripts, $styles) - { - parent::assets($scripts, $styles); - - $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/components.css'); - - /** - * @param Wbcr_Factory480_StyleList $styles - * @param Wbcr_Factory480_ScriptList $scripts - * - * @since 1.4.0 - * - */ - /*do_action('wbcr/clearfy/components/page_assets', $scripts, $styles); - }*/ - - /** - * This method simply show contents of the component page. - * - * @throws Exception - */ - public function showPageContent() - { - - /** - * @since 1.4.0 - * - */ - $components = apply_filters('wbcr/clearfy/license/list_components', []); - - ?> -
    Products activation.', 'clearfy') ?> -

    - -

    -
    -
    - - - -
    -
    - -
    - -
      - -
    • - : - -
    • - - -
    • - : - -
    • - - -
    • - : - -
    • - - -
    • - : - -
    • - -
    - -

    - -
    -
    - -
    - -
    -
    - - * @since 1.0.0 - * @copyright (c) 2017, OnePress Ltd - * - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -class WCL_ComponentsPage extends \WBCR\Factory_Templates_134\Pages\Components { - - public function get_components() - { - $default_image = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Ym94PSIwIDAgMzYwIDM2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0icmdiKDcwLCA4MSwgOTMpIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wNDYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjAyODY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA5OCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLCA2MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0MCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjE0MTMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDg5MzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wODA2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxMjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDk4IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDE4MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAzMDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMTI0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDMwMCkiIC8+PC9zdmc+'; - - $components = []; - $components = array_merge($components, [ - [ - 'name' => 'clearfy_cache', - 'title' => __('Cache', 'clearfy'), - 'type' => 'internal', - 'build' => 'free', - 'disable_button' => is_plugin_active('wp-rocket/wp-rocket.php'), - 'disable_button_reason' => __('You cannot activate the component while the wp rocket plugin is active!', 'clearfy'), - 'url' => 'https://clearfy.pro/cache/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/cache-icon-128x128.png', - 'description' => __('A very fast caching engine for WordPress that produces static html files.', 'clearfy') - ], - [ - 'name' => 'hide_my_wp', - 'title' => __('Hide my wp', 'clearfy'), - 'type' => 'internal', - 'build' => 'premium', - 'url' => 'http://clearfy.pro/hide-my-wp/', - 'icon' => $default_image, - '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') - ], - [ - 'name' => 'seo_friendly_images', - 'title' => __('Seo friendly images', 'clearfy'), - 'type' => 'internal', - 'build' => 'premium', - 'url' => 'https://clearfy.pro/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/sfi-icon-256x256.png', - 'description' => __('Automatically assign alt and title for images, flexibly customize the template.', 'clearfy') - ], - [ - 'name' => 'async_js', - 'title' => __('Async JS', 'clearfy'), - 'type' => 'internal', - 'build' => 'premium', - 'url' => 'https://clearfy.pro/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/async-js-icon-128x128.png', - 'description' => __('Async Javascript lets you add async or defer attribute to scripts to exclude to help increase the performance of your WordPres…', 'clearfy') - ], - [ - 'name' => 'robin_image_optimizer', - 'title' => __('Robin image optimizer', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/', - 'type' => 'wordpress', - 'build' => 'freemium', - 'base_path' => 'robin-image-optimizer/robin-image-optimizer.php', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/rio-icon-128x128.png', - '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') - ], - [ - 'name' => 'titan_security', - 'title' => __('Firewall and Malware scanner', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/titan-security/', - 'type' => 'creativemotion', - 'build' => 'freemium', - 'base_path' => 'anti-spam/anti-spam.php', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/titan-icon-256x256.jpg', - 'description' => __('Titan Security - Anti-virus, Firewall and Malware Scan', 'clearfy') - ], - [ - 'name' => 'hide_login_page', - 'title' => __('Hide login page', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/hide-login-page/', - 'type' => 'wordpress', - 'build' => 'free', - 'base_path' => 'hide-login-page/hide-login-page.php', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/hlp-icon-128x128.png', - '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') - ], - [ - 'name' => 'html_minify', - 'title' => __('Html minify', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => $default_image, - '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') - ], - [ - 'name' => 'minify_and_combine', - 'title' => __('Minify and combine (JS, CSS)', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => $default_image, - 'description' => __('Improve your speed score on GTmetrix, Pingdom Tools and Google PageSpeed Insights by merging and minifying CSS, JavaScript.', 'clearfy') - ], - [ - 'name' => 'ga_cache', - 'title' => __('Google Analytics Cache', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/simple-google-analytics/', - 'type' => 'internal', - 'build' => 'free', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/gac-icon-128x128.jpg', - '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') - ], - [ - 'name' => 'updates_manager', - 'title' => __('Updates manager', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/webcraftic-updates-manager/', - 'type' => 'internal', - 'build' => 'freemium', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/upm-icon-128x128.png', - 'description' => __('Disable updates enable auto updates for themes, plugins and WordPress.', 'clearfy') - ], - [ - 'name' => 'comments_tools', - 'title' => __('Comments tools', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dic-icon-128x128.png', - 'description' => __('Bulk disable and remove comments, disable “Website” field, hides external links, disable XML-RPC.', 'clearfy') - ], - [ - 'name' => 'widget_tools', - 'title' => __('Widgets tools', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => $default_image, - 'description' => __('Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy') - ], - [ - 'name' => 'disable_notices', - 'title' => __('Disable admin notices', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dan-icon-128x128.png', - 'description' => __('Disables admin notices bulk or individually. Collects notices into the admin bar.', 'clearfy') - ], - [ - 'name' => 'adminbar_manager', - 'title' => __('Admin bar manager', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => $default_image, - 'description' => __('Disables admin bar. Allows to change and remove admin bar elements.', 'clearfy') - ], - [ - 'name' => 'yoast_seo', - 'title' => __('Yoast SEO optimization', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'free', - 'icon' => $default_image, - 'description' => __('Set of optimization functions for the popular Yoast SEO plugin.', 'clearfy') - ] - ]); - - if( !is_plugin_active('gonzales/gonzales.php') ) { - array_unshift($components, [ - 'name' => 'assets_manager', - 'title' => __('Asset manager', 'clearfy'), - 'url' => '#', - 'type' => 'internal', - 'build' => 'freemium', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png', - 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy') - ]); - } else { - array_unshift($components, [ - 'name' => 'gonzales', - 'title' => __('Asset manager', 'clearfy'), - 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/', - 'type' => 'wordpress', - 'build' => 'freemium', - 'base_path' => 'gonzales/gonzales.php', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png', - 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy') - ]); - } - - $components[] = [ - 'name' => 'cyrlitera', - 'title' => __('Transliteration of Cyrillic alphabet', 'clearfy'), - 'type' => 'internal', - 'build' => 'free', - 'url' => 'https://wordpress.org/plugins/cyrlitera/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png', - 'description' => __('Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages.', 'clearfy') - ]; - - return $components; - } -} diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-defence-titan.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-defence-titan.php deleted file mode 100644 index fda6de9e..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-defence-titan.php +++ /dev/null @@ -1,119 +0,0 @@ -menu_title = __('Malware Scanner, Firewall', 'clearfy'); - $this->page_menu_short_description = __('Firewall and Anti-virus', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Содержание страницы - */ - public function showPageContent() - { - require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php'; - $install_button = $this->plugin->get_install_component_button('creativemotion', 'anti-spam/anti-spam.php'); - $install_button->add_class('wbcr-factory-purchase-premium'); - ?> - -
    -
    -

    - -

    - -

    -

    - - -

    - -

    -

    - render_link(); ?> -

    -
    -
    - menu_title = __( 'Defence', 'clearfy' ); - $this->page_menu_short_description = __( 'Protective hacks, privacy', 'clearfy' ); - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - /** - * Permalinks options. - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() { - $options = array(); - - $options[] = array( - 'type' => 'html', - 'html' => '
    ' . __( 'Base settings.', 'clearfy' ) . '

    ' . __( 'Basic recommended security settings.', 'clearfy' ) . '

    ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'protect_author_get', - 'title' => __( 'Hide author login', 'clearfy' ), - 'layout' => array( 'hint-type' => 'icon' ), - 'hint' => __( 'An attacker can find out the author\'s login, using a similar request to get your site. mysite.com/?author=1', 'clearfy' ) . '
    Clearfy: ' . __( 'Sets the redirect to exclude the possibility of obtaining a login.', 'clearfy' ), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'change_login_errors', - 'title' => __( 'Hide errors when logging into the site', 'clearfy' ), - 'layout' => array( 'hint-type' => 'icon' ), - 'hint' => __( 'WP by default shows whether you entered a wrong login or incorrect password, which allows attackers to understand if there is a certain user on the site, and then start searching through the passwords.', 'clearfy' ) . '
    Clearfy: ' . __( 'Changes in the text of the error so that attackers could not find the login.', 'clearfy' ), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_x_pingback', - 'title' => __( 'Disable XML-RPC', 'clearfy' ), - 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ), - 'hint' => __( 'A pingback is basically an automated comment that gets created when another blog links to you. A self-pingback is created when you link to an article within your own blog. Pingbacks are essentially nothing more than spam and simply waste resources.', 'clearfy' ) . '
    Clearfy: ' . __( 'Removes the server responses a reference to the xmlrpc file.', 'clearfy' ), - 'default' => false, - 'eventsOn' => array( - 'show' => '#wbcr-clearfy-xml-rpc-danger-message' - ), - 'eventsOff' => array( - 'hide' => '#wbcr-clearfy-xml-rpc-danger-message' - ) - ); - - $options[] = array( - 'type' => 'html', - 'html' => array( $this, 'xmlRpcDangerMessage' ) - ); - - //block_xml_rpc - //disable_xml_rpc_auth - //remove_xml_rpc_tag - - $options[] = array( - 'type' => 'html', - 'html' => '
    ' . __( 'Hide WordPress versions', 'clearfy' ) . '

    ' . __( 'WordPress itself and many plugins shows their version at the public areas of your site. An attacker received this information may be aware of the vulnerabilities found in the version of the WordPress core or plugins.', 'clearfy' ) . '

    ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_html_comments', - 'title' => __( 'Remove html comments', 'clearfy' ), - 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ), - 'hint' => __( 'This function will remove all html comments in the source code, except for special and hidden comments. This is necessary to hide the version of installed plugins.', 'clearfy' ) . '

    Clearfy: ' . __( 'Remove html comments in source code.', 'clearfy' ), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_meta_generator', - 'title' => __( 'Remove meta generator', 'clearfy' ) . ' (' . __( 'Recommended', 'clearfy' ) . ')', - 'layout' => array( 'hint-type' => 'icon' ), - 'hint' => __( 'Allows attacker to learn the version of WP installed on the site. This meta tag has no useful function.', 'clearfy' ) . '
    Clearfy: ' . sprintf( __( 'Removes the meta tag from the %s section', 'clearfy' ), '<head>' ), - 'default' => false - ); - - $form_options = array(); - - $form_options[] = array( - 'type' => 'form-group', - 'items' => apply_filters( 'wbcr_clearfy_defence_form_options', $options, $this ), - //'cssClass' => 'postbox' - ); - - return wbcr_factory_480_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array( - $form_options, - $this - ), '1.3.1', 'wbcr_clearfy_defence_form_options' ); - } - - /** - * Adds an html warning notification html markup. - */ - public function xmlRpcDangerMessage() { - ?> -
    - -
    -
    - Use this option carefully!
    Plugins like jetpack may have problems using this option.', 'clearfy' ) ?> -
    -
    -
    - menu_title = __('Hide login page', 'clearfy'); - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Содержание страницы - */ - public function showPageContent() - { - require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php'; - $install_button = $this->plugin->get_install_component_button('wordpress', 'hide-login-page/hide-login-page.php'); - $install_button->add_class('wbcr-factory-purchase-premium'); - ?> - -
    -
    -

    - -

    - -

    - -

    - render_link(); ?> -

    -
    -
    - menu_title = __( 'Image optimization', 'clearfy' ); - $this->page_menu_short_description = __( 'Compress bulk of images', 'clearfy' ); - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - /** - * Содержание страницы - */ - public function showPageContent() { - require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php'; - $install_button = $this->plugin->get_install_component_button( 'wordpress', 'robin-image-optimizer/robin-image-optimizer.php' ); - $install_button->add_class( 'wbcr-factory-purchase-premium' ); - ?> - -
    -
    -

    -

    -

    -

    - render_link(); ?> -

    -
    -
    - , Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ - class WCL_LicensePage extends WBCR\Factory_Templates_134\Pages\License { - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $id = 'clearfy_license'; - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $page_parent_page; - - /** - * WCL_LicensePage constructor. - * - * @param \Wbcr_Factory480_Plugin $plugin - * - * @author Alexander Kovalev - * - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'License', 'robin-image-optimizer' ); - $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' ); - $this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' ); - - if ( defined( 'WIO_PLUGIN_ACTIVE' ) && ! wrio_is_clearfy_license_activate() ) { - $this->page_parent_page = 'none'; - } - - parent::__construct( $plugin ); - - /** - * Adds a new plugin card to license components page - * - * @author Alexander Kovalev - * @since 1.6.2 - */ - add_filter( 'wbcr/clearfy/license/list_components', function ( $components ) { - $title = 'Free'; - $icon = 'clearfy-premium-icon-256x256--lock.png'; - - if ( $this->is_premium ) { - $title = 'Premium'; - $icon = 'clearfy-premium-icon-256x256--default.png'; - } - - $components[] = [ - 'name' => 'clearfy', - 'title' => sprintf( __( 'Clearfy [%s]', 'clearfy' ), $title ), - 'type' => 'internal', - 'build' => $this->is_premium ? 'premium' : 'free', - 'key' => $this->get_hidden_license_key(), - 'plan' => $this->get_plan(), - 'expiration_days' => $this->get_expiration_days(), - 'quota' => $this->is_premium ? $this->premium_license->get_count_active_sites() . ' ' . __( 'of', 'clearfy' ) . ' ' . $this->premium_license->get_sites_quota() : null, - 'subscription' => $this->is_premium && $this->premium_has_subscription ? sprintf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ) : null, - 'url' => 'https://clearfy.pro/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/' . $icon, - 'description' => __( 'Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'clearfy' ), - 'license_page_id' => 'clearfy_license' - ]; - - return $components; - } ); - } - - /** - * {@inheritdoc} - * - * @return string - * @since 1.6.0 - * @author Alexander Kovalev - */ - public function get_plan_description() { - $description = '

    ' . __( 'Clearfy Business 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' ) . '

    '; - $description .= '

    ' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '

    '; - - return $description; - } - } \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-performance-google.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-performance-google.php deleted file mode 100644 index 50f21f81..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-performance-google.php +++ /dev/null @@ -1,156 +0,0 @@ -menu_title = __('Google services', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - public function afterFormSave() - { - $ga_cache = $this->getPopulateOption('ga_cache'); - $ga_caos_remove_wp_cron = $this->getPopulateOption('ga_caos_remove_wp_cron'); - - if( $ga_cache ) { - if( !$ga_caos_remove_wp_cron ) { - if( !wp_next_scheduled('wbcr_clearfy_update_local_ga') ) { - wp_schedule_event(time(), 'daily', 'wbcr_clearfy_update_local_ga'); - } - - return; - } - } - - if( (!$ga_cache || $ga_caos_remove_wp_cron) && wp_next_scheduled('wbcr_clearfy_update_local_ga') ) { - wp_clear_scheduled_hook('wbcr_clearfy_update_local_ga'); - } - } - - /** - * Permalinks options. - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() - { - $options = array(); - - /*$options[] = array( - 'type' => 'html', - 'html' => '
    ' . __('Fonts and Maps.', 'clearfy') . '

    ' . __('Google Fonts and Maps strongly affect your website loading speed. Use settings below to disable or optimize Google fonts and Maps.', 'clearfy') . '

    ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'lazy_load_google_fonts', - 'title' => __('Google Fonts asynchronous', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => __('By default, WordPress loads Google fonts synchronously, that is, your page will not be fully loaded until Google Fonts are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Google Fonts will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see how the font changes while loading a page, from the system to the downloadable one.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_google_fonts', - 'title' => __('Disable Google Fonts', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('This function stops loading of Open Sans and other fonts used by WordPress and bundled themes (Twenty Twelve, Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, Twenty Seventeen) from Google Fonts. -Reasons for not using Google Fonts might be privacy and security, local development or production, blocking of Google’s servers, characters not supported by font, performance.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_google_maps', - 'title' => __('Disable Google maps', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('This function stops loading of Google Maps used by some themes or plugins. -Reasons for not using Google Maps might be privacy and security, local development or production, blocking of Google’s servers, performance, not necessary, etc.', 'clearfy'), - 'default' => false, - 'eventsOn' => array( - 'show' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps' - ), - 'eventsOff' => array( - 'hide' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps' - ) - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_iframe_google_maps', - 'title' => __('Remove iframe Google maps', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('By default, the "Disable Google Maps" option removes maps inserted with the SCRIPT tag from the page source code. However, you can also cut out all maps inserted via the iframe by enabling this option.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'textbox', - 'way' => 'buttons', - 'name' => 'exclude_from_disable_google_maps', - 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'), - 'hint' => __('Posts or Pages IDs separated by a ,', 'clearfy') - );*/ - - $form_options = array(); - - $form_options[] = array( - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ); - - return apply_filters('wbcr_clr_google_performance_form_options', $form_options, $this); - } - } diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-performance.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-performance.php deleted file mode 100644 index 9951b7b8..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-performance.php +++ /dev/null @@ -1,477 +0,0 @@ -menu_title = __('Performance', 'clearfy'); - $this->page_menu_short_description = __('Optimization js, css, fonts', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - public function afterFormSave() - { - if( $this->getPopulateOption('disable_gravatars') ) { - update_option('show_avatars', false); - } else { - update_option('show_avatars', true); - } - } - - public function warningNotice() - { - parent::warningNotice(); - - if( !$this->plugin->getPopulateOption('revisions_disable') && $this->is_post_revision_constant() ) { - $this->printWarningNotice(__('Warning! In the wp-config.php file, a constant WP_POST_REVISIONS is found, it determines the number of revisions. Delete it so you can change this value through the admin panel.', 'clearfy')); - } - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - $options = []; - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . __('Clear the unnecessary scripts', 'clearfy') . '

    ' . __('This set of settings will help you remove unnecessary links and code from the head section, as well as reduce your website\'s pages weight.', 'clearfy') . '

    ' - ]; - - /*$options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_json_rest_api', - 'title' => __('Remove REST API Links', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'], - 'hint' => __('The WordPress REST API provides API endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON (JavaScript Object Notation) objects. However, a lot of sites don’t use this, and therefore in most cases, it is just unnecessary code.', 'clearfy') . '

    Clearfy: ' . __('Removes REST API link tag from the front end and the REST API header link from page requests.', 'clearfy'), - 'default' => false, - 'eventsOn' => [ - 'show' => '#wbcr-clearfy-rest-api-danger-message' - ], - 'eventsOff' => [ - 'hide' => '#wbcr-clearfy-rest-api-danger-message' - ] - ]; - - $options[] = [ - 'type' => 'html', - 'html' => [$this, 'restApiDangerMessage'] - ];*/ - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_emoji', - 'title' => __('Disable Emojis', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '

    Clearfy: ' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'), - 'default' => false - ]; - - /*$options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_jquery_migrate', - 'title' => __('Remove jQuery Migrate', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'], - 'hint' => __('They started adding jQuery migrate in WordPress 3.6. Most up-to-date frontend code and plugins don’t require jquery-migrate.min.js. In most cases, this simply adds unnecessary load to your site. You can see this running if you launch Chrome Devtools console.', 'clearfy') . '

    Clearfy: ' . __('Removes jQuery Migrate JavaScript file (jquery-migrate.min.js).', 'clearfy') . '
    --
    ' . __('Warning! If there is a broke on your site, disable this option!', 'clearfy') . '', - 'default' => false - ];*/ - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_embeds', - 'title' => __('Disable Embeds', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Embeds were released with WordPress 4.4. This is basically the magic that auto converts your YouTube videos, Tweets, and URLs into pretty previews while you are editing. However, this actually loads a JavaScript file (wp-embed.min.js) on every page of your website. If you don’t care about the auto converting preview (which we don’t), you can disable this across your site.', 'clearfy') . '

    Clearfy: ' . __('Removes WordPress Embed JavaScript file (wp-embed.min.js)', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_bloat', - 'title' => __('Remove bloat in head', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Remove RSD Link, XFN (XHTML Friends Network) Profile Link, wlwmanifest Link, Shortlink, Remove links to previous, next post, .recentcomments styles', 'clearfy') . '
    link rel="EditURI" type="application/rsd+xml" title="RSD"

    Clearfy: ' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'), - 'default' => false - ]; - - /*$options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_dns_prefetch', - 'title' => __('Remove dns-prefetch', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('Since version 4.6.1 in WordPress there are new links in the section %s this type of: ', 'clearfy'), 'head') . ' link rel="dns-prefetch" href="//s.w.org"

    Clearfy: ' . sprintf(__('Removes dns-prefetch links from the %s section', 'clearfy'), 'head'), - 'default' => false - );*/ - /*$options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_rsd_link', - 'title' => __('Remove RSD Link', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '
    link rel="EditURI" type="application/rsd+xml" title="RSD"

    Clearfy: ' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'), - 'default' => false - ]; - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_xfn_link', - 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('The profile attribute specifies the metadata profile address. Usually, the browser recognizes the value of this attribute and executes some conventions related to the specified profile. Loading the document itself at the specified address does not really happen, moreover, it may not exist at all. -In particular, the profile is used for the XFN microformat (XHTML Friends Network) - a way of representing relationships between people using links and rel attributes with different values. WordPress also actively uses profile in its templates. -', 'clearfy') . '

    Clearfy: ' . __('Remove link tag', 'clearfy') . '
    link rel="profile" href="http://gmpg.org/xfn/11"', - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_wlw_link', - 'title' => __('Remove wlwmanifest Link', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => 'link rel="wlwmanifest" type="application/wlwmanifest+xml"
    ' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '

    Clearfy: ' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_shortlink_link', - 'title' => __('Remove Shortlink', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '
    link rel="shortlink" href="https://domain.com?p=712"
    ') . '

    Clearfy: ' . __('Remove Shortlink link tag.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_adjacent_posts_link', - 'title' => __('Remove links to previous, next post', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '

    Clearfy: ' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_recent_comments_style', - 'title' => __('Remove .recentcomments styles', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '

    Clearfy: ' . __('Removes .recentcomments styles from head section.', 'clearfy'), - 'default' => false - ];*/ - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_gravatars', - 'title' => __('Disable gravatars', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('This function that prevents the user’s gravatar being automatically obtained from gravatar.com based on their registered email. This would be useful for sites where users require an extra layer of privacy, or if you just want to prevent potentially silly or embarrasing avatar accidents. - If you’re using Identicons or any other generated default avatar, the user should keep a consistent avatar unless they change their registered email. - ', 'clearfy'), - 'default' => false - ]; - - $options[] = array( - 'type' => 'html', - 'html' => '
    ' . __('Fonts and Maps.', 'clearfy') . '

    ' . __('Google Fonts and Maps strongly affect your website loading speed. Use settings below to disable or optimize Google fonts and Maps.', 'clearfy') . '

    ' - ); - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'lazy_load_font_awesome', - 'title' => __('Font Awesome asynchronous', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('By default, WordPress loads Font Awesome icons synchronously, that is, your page will not be fully loaded until Font Awesome icons are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Font Awesome icons will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see changes while loading a page, from the placeholders to icons.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_dashicons', - 'title' => __('Disable Dashicons', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Dashicons is the official icon font of the WordPress admin as of 3.8. Some of you have requested that we add a feature to remove Dashicons. Some themes and developers utilize this (dashicons.min.css) on the front-end of their sites.', 'clearfy'), - 'default' => false - ]; - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'lazy_load_google_fonts', - 'title' => __('Google Fonts asynchronous', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => __('By default, WordPress loads Google fonts synchronously, that is, your page will not be fully loaded until Google Fonts are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Google Fonts will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see how the font changes while loading a page, from the system to the downloadable one.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_google_fonts', - 'title' => __('Disable Google Fonts', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('This function stops loading of Open Sans and other fonts used by WordPress and bundled themes (Twenty Twelve, Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, Twenty Seventeen) from Google Fonts. -Reasons for not using Google Fonts might be privacy and security, local development or production, blocking of Google’s servers, characters not supported by font, performance.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_google_maps', - 'title' => __('Disable Google maps', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('This function stops loading of Google Maps used by some themes or plugins. -Reasons for not using Google Maps might be privacy and security, local development or production, blocking of Google’s servers, performance, not necessary, etc.', 'clearfy'), - 'default' => false, - 'eventsOn' => array( - 'show' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps' - ), - 'eventsOff' => array( - 'hide' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps' - ) - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_iframe_google_maps', - 'title' => __('Remove iframe Google maps', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('By default, the "Disable Google Maps" option removes maps inserted with the SCRIPT tag from the page source code. However, you can also cut out all maps inserted via the iframe by enabling this option.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'textbox', - 'way' => 'buttons', - 'name' => 'exclude_from_disable_google_maps', - 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'), - 'hint' => __('Posts or Pages IDs separated by a ,', 'clearfy') - ); - - /*$options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Remove query strings from static resources', 'clearfy') . '' . '

    ' . __('This funcitons will remove query strings from static resources like CSS & JS files inside the HTML element to improve your speed scores in services like Pingdom, GTmetrix, PageSpeed and YSlow. Important: This does not work for authorized users. To avoid problems after plugins update!', 'clearfy') . '

    ' . '
    ' - ];*/ - - /*$options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_js_version', - 'title' => __('Remove Version from Script', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions.

    - Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '

    Clearfy: ' . __('Removes wordpress version number from scripts (not logged in user only).', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_style_version', - 'title' => __('Remove Version from Stylesheet', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions.

    - Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '

    Clearfy: ' . __('Removes the wordpress version number from stylesheets (not logged in user only).', 'clearfy'), - 'default' => false - /*'eventsOn' => array( - 'show' => '.factory-control-disable_remove_style_version_for_auth_users' - ), - 'eventsOff' => array( - 'hide' => '.factory-control-disable_remove_style_version_for_auth_users' - ) - ];*/ - - /*$options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_remove_style_version_for_auth_users', - 'title' => __( 'Disable remove versions for auth users', 'clearfy' ) . ' (' . __( 'Recommended', 'clearfy' ) . ')', - 'layout' => array( 'hint-type' => 'icon' ), - 'default' => false - );*/ - - /*$options[] = [ - 'type' => 'textarea', - 'name' => 'remove_version_exclude', - 'height' => '120', - 'title' => __('Exclude stylesheet/script file names', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Enter Stylesheet/Script file names to exclude from version removal (each exclude file starts with a new line)', 'clearfy') . '

    ' . __('Example', 'clearfy') . ':' . ' http://testwp.dev/wp-includes/js/jquery/jquery.js', - ];*/ - - $options[] = [ - 'type' => 'html', - 'html' => '
    ' . '' . __('Heartbeat', 'clearfy') . '' . '

    ' . __('The WordPress Heartbeat API uses /wp-admin/admin-ajax.php to run AJAX calls from the web-browser. While this is great and all it can also cause high CPU usage and crazy amounts of PHP calls. For example, if you leave your dashboard open it will keep sending POST requests to this file on a regular interval, every 15 seconds. Here is an example below of it happening.', 'clearfy') . '

    ' . '
    ' - ]; - - $options[] = [ - 'type' => 'dropdown', - 'name' => 'disable_heartbeat', - 'way' => 'buttons', - 'title' => __('Disable Heartbeat', 'clearfy'), - 'data' => [ - ['default', __('Default', 'clearfy')], - ['everywhere', __('Everywhere', 'clearfy')], - ['on_dashboard_page', __('In admin panel', 'clearfy')], - ['allow_only_on_post_edit_pages', __('Only allow when editing Posts/Pages', 'clearfy')] - ], - //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - //'hint' => __('You can disable all plugin updates or choose manual or automatic update mode.', 'clearfy'), - 'events' => [ - 'default' => [ - 'show' => '.factory-control-heartbeat_frequency' - ], - 'on_dashboard_page' => [ - 'show' => '.factory-control-heartbeat_frequency' - ], - 'allow_only_on_post_edit_pages' => [ - 'show' => '.factory-control-heartbeat_frequency' - ], - 'everywhere' => [ - 'hide' => '.factory-control-heartbeat_frequency' - ] - ], - 'default' => 'default', - ]; - - $options[] = [ - 'type' => 'dropdown', - 'name' => 'heartbeat_frequency', - 'title' => __('Heartbeat frequency', 'clearfy'), - 'data' => [ - ['default', __('Wordpress default', 'clearfy')], - ['20', '20 ' . __('seconds', 'clearfy')], - ['25', '25 ' . __('seconds', 'clearfy')], - ['30', '30 ' . __('seconds', 'clearfy')], - ['35', '35 ' . __('seconds', 'clearfy')], - ['40', '40 ' . __('seconds', 'clearfy')], - ['45', '45 ' . __('seconds', 'clearfy')], - ['50', '50 ' . __('seconds', 'clearfy')], - ['55', '55 ' . __('seconds', 'clearfy')], - ['60', '60 ' . __('seconds', 'clearfy')], - ['80', '80 ' . __('seconds', 'clearfy')], - ['120', '120 ' . __('seconds', 'clearfy')], - ['150', '150 ' . __('seconds', 'clearfy')], - ['200', '200 ' . __('seconds', 'clearfy')], - ['250', '250 ' . __('seconds', 'clearfy')], - ['300', '300 ' . __('seconds', 'clearfy')], - ['400', '400 ' . __('seconds', 'clearfy')], - ['500', '500 ' . __('seconds', 'clearfy')] - ], - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Select the heartbeat frequency wordpress. We recommend you 60 seconds, default is 20 seconds.', 'clearfy'), - 'default' => 'default' - ]; - - $form_options = []; - - $form_options[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters('wbcr_clr_code_clean_form_options', $form_options, $this); - } - - /** - * Adds an html warning notification html markup. - */ - public function restApiDangerMessage() - { - ?> -
    - -
    -
    - Use this option carefully!
    Plugins like Contact form 7, Anycomments may have problems using this option.', 'clearfy') ?> -
    -
    -
    - menu_title = __('Clearfy', 'clearfy'); - $this->page_menu_short_description = __('One-click settings', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - public function getPageTitle() - { - return __('Quick start', 'clearfy'); - } - - /** - * Requests assets (js and css) for the page. - * - * @return void - * @since 1.0.0 - * @see FactoryPages480_AdminPage - * - */ - public function assets($scripts, $styles) - { - parent::assets($scripts, $styles); - - /** - * Подгружаем стили для вижета оптимизации изображений, если не установли плагин оптимизации изображений - */ - if( !defined('WIO_PLUGIN_ACTIVE') ) { - $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/base-statistic.css'); - } - - //$this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js'); - - $params = array( - //'ajaxurl' => admin_url('admin-ajax.php'), - 'flush_cache_url' => $this->getActionUrl('flush-cache-and-rules', array('_wpnonce' => wp_create_nonce('wbcr_factory_' . $this->getResultId() . '_flush_action'))), - 'ajax_nonce' => wp_create_nonce('wbcr_clearfy_ajax_quick_start_nonce'), - 'i18n' => array( - 'success_update_settings' => __('Settings successfully updated!', 'clearfy'), - 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy') - ) - ); - $this->scripts->localize('wbcr_clearfy_ajax', $params); - } - - /** - * Shows the description above the options. - * - * @return void - * @since 1.0.0 - */ - public function _showHeader() - { - ?> -
    - -
    - array('title' => __('One click code clearing', 'clearfy'), 'icon' => 'dashicons-yes'), - 'defence' => array('title' => __('One click security', 'clearfy'), 'icon' => 'dashicons-shield'), - 'seo_optimize' => array( - 'title' => __('One click seo optimization', 'clearfy'), - 'icon' => 'dashicons-star-empty' - ), - 'remove_default_widgets' => array( - 'title' => __('One click remove default Widgets', 'clearfy'), - 'icon' => 'dashicons-networking' - ), - )); - - if( !$this->plugin->isActivateComponent('widget_tools') ) { - unset($allow_mods['remove_default_widgets']); - } - - $allow_mods['reset'] = array( - 'title' => __('Reset all settings', 'clearfy'), - 'icon' => 'dashicons-backup', - 'args' => array('flush_redirect' => 1) - ); - ?> -
    -

    - -
    - -
    -
      -
      - - -
      -
      - -
      -
      Quick start.', 'clearfy') ?> -

      -
      - - - -
      -

      - -

      - -
        - $mode): ?> - - -
      • - getOptions() as $option) { - $filter_mode_options[$option->getName()] = $option->getTitle(); - } - - $print_group_options = WCL_Helper::getEscapeJson($filter_mode_options); - ?> - -

        -

        - - -
        - - - - - -
        - -
        - -
      • - -
      • -
        - - -
        - -
        -
        -
      • -
      -
      - -
      - - menu_title = __('Duplicate pages', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - - /** - * Permalinks options. - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() - { - $options = array(); - - /*$options[] = array( - 'type' => 'html', - 'html' => array($this, '_showHeader') - );*/ - - /*$options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_date', - 'title' => __('Disable search', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '
      Clearfy: ' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'), - 'default' => false - );*/ - - $options[] = array( - 'type' => 'html', - 'html' => '
      ' . __('Delete duplicate pages..', 'clearfy') . '

      ' . __('Search engines perceive these pages as website separate pages, therefore their content ceases to be unique because of duplication. In addition, page reference weight is reduced if it has a duplicate. A small number of duplicated pages will not be a serious problem, but if there are more than 50 percents of them - you urgently need to correct the situation.', 'clearfy') . '

      ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_date', - 'title' => __('Remove archives date', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '
      Clearfy: ' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_author', - 'title' => __('Remove author archives ', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '
      Clearfy: ' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_tag', - 'title' => __('Remove archives tag', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('If you use tags only for the block Similar records, or do not use them at all - it will be more correct to close them to avoid duplicates.', 'clearfy') . '
      Clearfy: ' . __('Removes all pages with the tag archives and puts a redirect.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'attachment_pages_redirect', - 'title' => __('Remove attachment pages', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '
      Clearfy: ' . __('Removes attachment pages and puts a redirect.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_single_pagination_duplicate', - 'title' => __('Remove post pagination', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => sprintf(__('In WordPress, any post can be divided into parts (pages), each part will have its own address. But this functionality is rarely used, but it can create trouble for you. For example, you can add a number to the address of any entry of your blog, %s - the post itself will open, which will be a duplicate. You can substitute any number.', 'clearfy'), '/privet-mir/1/') . '
      Clearfy: ' . sprintf(__('Removes the pagination from the post and puts a redirect. Example: %s', 'clearfy'), '/post-name/number'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_replytocom', - 'title' => __('Remove ?replytocom', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '
      Clearfy: ' . __('?relpytocom remove and and puts a redirect.', 'clearfy'), - 'default' => false - ); - - /*$options[] = array( - 'type' => 'separator', - 'cssClass' => 'factory-separator-dashed' - ); - - $options[] = array( - 'type' => 'html', - 'html' => array($this, '_showFormButton') - );*/ - - $form_options = array(); - - $form_options[] = array( - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ); - - return apply_filters('wbcr_clr_double_form_options', $form_options, $this); - } - } diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-seo.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-seo.php deleted file mode 100644 index e80b75d5..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-seo.php +++ /dev/null @@ -1,245 +0,0 @@ -menu_title = __('SEO', 'clearfy'); - $this->page_menu_short_description = __('Additional small fixes SEO', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Conflict notites - */ - public function warningNotice() - { - $notices = apply_filters('wbcr_clr_seo_page_warnings', array()); - - if( !empty($notices) ) { - foreach($notices as $message) { - $this->printWarningNotice($message); - } - } - } - - - /** - * Permalinks options. - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() - { - $options = array(); - - $options[] = array( - 'type' => 'html', - 'html' => '
      ' . __('Basic SEO optimization settings.', 'clearfy') . '

      ' . __('Recommended settings that can complement your SEO plugin.', 'clearfy') . '

      ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'content_image_auto_alt', - 'title' => __('Automatically set the alt attribute', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => array('hint-type' => 'icon'), - 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '

      Clearfy: ' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), 'img scr="" alt=""', 'img scr="" alt="Hello world"'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'right_robots_txt', - 'title' => __('Create right robots.txt', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('After installation, WP does not contain a robots.txt file and create it manually. We re-read about 30 different articles, instructions from Yandex and Google to create the perfect robots.txt', 'clearfy') . '

      Clearfy: ' . __('Automatically creates the perfect robots.txt file', 'clearfy'), - 'default' => false, - 'eventsOn' => array( - 'show' => '.factory-control-robots_txt_text' - ), - 'eventsOff' => array( - 'hide' => '.factory-control-robots_txt_text' - ) - ); - - $options[] = array( - 'type' => 'textarea', - 'name' => 'robots_txt_text', - 'title' => __('You can edit the robots.txt file in the box below:', 'clearfy'), - 'default' => WCL_Helper::getRightRobotTxt(), - 'height' => '300' - ); - - $options[] = array( - 'type' => 'html', - 'html' => '
      ' . '' . __('Server headers and response', 'clearfy') . '' . '

      ' . __('WordPress does not know how to give the Last Modified header in the server\'s responses. You can do this using the settings below.', 'clearfy') . '

      ' . '
      ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'set_last_modified_headers', - 'title' => __('Automatically insert the Last Modified header', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'default' => false, - 'eventsOn' => array( - 'show' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers' - ), - 'eventsOff' => array( - 'hide' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers' - ) - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_frontpage_last_modified_headers', - 'title' => __('Disable Last Modified header on front page', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'default' => true, - ); - - $options[] = array( - 'type' => 'textarea', - 'name' => 'last_modified_exclude', - 'height' => '120', - 'title' => __('Exclude pages:', 'clearfy'), - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('You can specify a page mask, for example: %s or %s. All pages that contain the string will be excluded. Each exclude must begin with a new line.', 'clearfy'), '/s=', '/manager/'), - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'if_modified_since_headers', - 'title' => __('Return an If-Modified-Since responce', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'default' => false - ); - - if( $this->plugin->isActivateComponent('yoast_seo') ) { - $options[] = array( - 'type' => 'html', - 'html' => '
      ' . '' . __('For the Yoast SEO plugin', 'clearfy') . '' . '

      ' . __('These settings will help you eliminate some problems associated with the popular Yoast SEO plugin', 'clearfy') . '

      ' . '
      ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_last_item_breadcrumb_yoast', - 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => array('hint-type' => 'icon'), - 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '

      Clearfy: ' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_image_from_xml_sitemap', - 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'), - 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image

      Clearfy: ' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '
      --
      ' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '' . '
      ' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '', - 'default' => false, - 'eventsOn' => array() - ); - - /*$options[] = array( - 'type' => 'html', - 'id' => 'wbcr-clearfy-image-xml-sitemap-warning', - 'cssClass' => 'factory-hints', - 'html' => array($this, 'sfsdfsdf') - );*/ - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_json_ld_search', - 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '', - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . '
      Clearfy: ' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_json_ld_output', - 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' ', - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('Prevents output of the script tag of type application/ld+json containing -schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins. -There is currently no UI to do so.', 'clearfy') . '
      Clearfy: ' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'), - 'default' => false - ); - - /*$options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_canonical_pagination', - 'title' => sprintf(__('Canonical on pagination pages', 'clearfy'), 'head'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'hint' => __('It’s a well-known fact, that the Yoast SEO plugin outputs canonical links on pagination pages, such as /page/2/, /page/3/ and so on. While various search engines treat canonical links differently, it is always better to replace them with the link leading to the main pagination page. -If enabled, this feature changes the canonical link to the main page or category link. -When you deactivate some components, permanent links may work incorrectly. If this happens, please, update the structure of the permanent links, so you could complete the deactivation. -', 'clearfy'), - 'default' => false - );*/ - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_head_comment', - 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => array('hint-type' => 'icon'), - 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '

      Clearfy: ' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'), - 'default' => false - ); - } - - $form_options = array(); - - $form_options[] = array( - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ); - - return apply_filters('wbcr_clr_seo_form_options', $form_options, $this); - } - } - - diff --git a/wp-content/plugins/!clearfy/admin/pages/class-pages-widgets.php b/wp-content/plugins/!clearfy/admin/pages/class-pages-widgets.php deleted file mode 100644 index e7b7f2b7..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/class-pages-widgets.php +++ /dev/null @@ -1,196 +0,0 @@ -menu_title = __('Widgets', 'clearfy'); - $this->page_menu_short_description = __('Disable unused widgets', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - $options = array(); - - $options[] = array( - 'type' => 'html', - 'html' => '
      ' . __('Disable unused widgets.', 'clearfy') . '

      ' . __('Some widgets, such as the Calendar or Tag Cloud, create an extra query to the database, even if they are not displayed on the website. Of course, a couple of hits to the database will not do much harm to the whole site. However, if the resource contains a huge amount of content, and the speed of its work above all else, disabling unused functionality is the first step to optimizing and accelerating it.', 'clearfy') . '

      ' - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_page', - 'title' => __('Remove the "Pages" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_calendar', - 'title' => __('Remove calendar widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_tag_cloud', - 'title' => __('Remove the "Cloud of tags" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_archives', - 'title' => __('Remove the "Archives" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_links', - 'title' => __('Remove the "Links" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_meta', - 'title' => __('Remove the "Meta" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_search', - 'title' => __('Remove the "Search" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_text', - 'title' => __('Remove the "Text" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_categories', - 'title' => __('Remove the "Categories" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_recent_posts', - 'title' => __('Remove the "Recent Posts" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_recent_comments', - 'title' => __('Remove the "Recent Comments" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_rss', - 'title' => __('Remove the "RSS" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_menu', - 'title' => __('Remove the "Menu" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $options[] = array( - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera', - 'title' => __('Remove the "Twenty Eleven Ephemera" widget', 'clearfy'), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'), - 'default' => false - ); - - $form_options = array(); - - $form_options[] = array( - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ); - - return apply_filters('wbcr_clr_widgets_form_options', $form_options, $this); - } -} diff --git a/wp-content/plugins/!clearfy/admin/pages/setup/class-pages-setup.php b/wp-content/plugins/!clearfy/admin/pages/setup/class-pages-setup.php deleted file mode 100644 index aad7ea34..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/setup/class-pages-setup.php +++ /dev/null @@ -1,88 +0,0 @@ - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class WCL_Setup extends WBCR\Factory_Templates_134\Pages\Setup { - - /** - * Constructor method for initializing the setup wizard. - * - * @param \Wbcr_Factory480_Plugin $plugin An instance of the plugin class that provides necessary plugin functionality and settings. - * - * @return void - * @throws Exception - */ - public function __construct(\Wbcr_Factory480_Plugin $plugin) - { - // Call parent constructor. - parent::__construct($plugin); - - // Path to the directory containing step classes. - $path = WCL_PLUGIN_DIR . '/admin/pages/setup/steps'; - - // Registering the steps of the setup wizard. - - # Step 1: Default step - $this->register_step($path . '/class-step-default.php', '\WBCR\Clearfy\Pages\Step_Default'); - - # Step 2: Google Page Speed (Before) - $this->register_step($path . '/class-step-google-page-speed-before.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_Before'); - - # Step 3: Plugins step - $this->register_step($path . '/class-step-plugins.php', '\WBCR\Clearfy\Pages\Step_Plugins'); - - # Step 4: Speed Optimization Settings - $this->register_step($path . '/class-step-setting-speed-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Speed_Optimize'); - - # Step 5: SEO Optimization Settings - $this->register_step($path . '/class-step-setting-seo-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Seo'); - - # Step 6: Image Optimization - $this->register_step($path . '/class-step-optimize-images.php', '\WBCR\Clearfy\Pages\Step_Optimize_Images'); - - # Step 7: Google Page Speed (After) - $this->register_step($path . '/class-step-google-page-speed-after.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_After'); - - # Step 8: Congratulations step - $this->register_step($path . '/class-step-congratulation.php', '\WBCR\Clearfy\Pages\Step_Congratulation'); - } - - /** - * Enqueues required assets (js and css) for the setup wizard. - * - * This loads additional scripts and styles specific to the setup wizard page. - * - * @param object $scripts The object to enqueue scripts. - * @param object $styles The object to enqueue styles. - * - * @return void - * @since 1.0.0 - * @see FactoryPages480_AdminPage - */ - public function assets($scripts, $styles) - { - // Call parent method to enqueue default assets. - parent::assets($scripts, $styles); - - // Add custom JavaScript files. - $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/circular-progress.js'); - $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/setup.js'); - - // Add custom CSS files. - $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/page-setup.css'); - } -} diff --git a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-congratulation.php b/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-congratulation.php deleted file mode 100644 index bc689c2b..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-congratulation.php +++ /dev/null @@ -1,200 +0,0 @@ - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - * / - */ -class Step_Congratulation extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $prev_id = 'step6'; - protected $id = 'step7'; - - //protected $next_id = 'step2'; - - /** - * Retrieves the title text. - * - * @return string The localized title string. - */ - public function get_title(): string - { - return __("Finish", "clearfy"); - } - - /** - * Renders the HTML content for the plugin setup wizard completion message and Pro version features comparison table. - * - * This method generates a message indicating the completion of the plugin setup process, provides a detailed comparison of Free and Pro features, - * and includes a call-to-action button for upgrading to the Pro version. - * - * @return void Outputs the generated HTML directly to the page. - * @throws \Exception - */ - public function html(): void - { - $pricing_page_url = $this->plugin->get_support()->get_pricing_url(true, 'setup_wizard'); - ?> -
      -

      -

      - -

      -
      -
      -

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FreePRO
      - Transliteration of links and file names
      Optimize Yoast Seo
      Post tools
      Admin bar managers
      Disable admin - notices
      Disable widgets
      - Disable comments -
      Assets Manager
      Minify and combine (JS, CSS)
      Html minify
      Image optimizer
      Hide login page
      Hide My Wp PRO
      Assets Manager PRO
      Multisite control
      Update manager PRO
      SEO friendly images PRO
      -

      - -

      -
      -
      - render_button(); ?> - get_next_id(); - if (!$next_id) { - wp_safe_redirect($this->plugin->getPluginPageUrl('quick_start')); - die(); - } - wp_safe_redirect($this->page->getActionUrl($next_id)); - die(); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-default.php b/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-default.php deleted file mode 100644 index 099cff15..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-default.php +++ /dev/null @@ -1,53 +0,0 @@ - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Default extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $id = 'step0'; - protected $next_id = 'step1'; - - /** - * Retrieves the title text. - * - * @return string The translated title text. - */ - public function get_title(): string - { - return __("Welcome", 'clearfy'); - } - - /** - * Renders the HTML structure for the setup wizard onboarding interface. - * - * @return void - * @throws \Exception - */ - public function html(): void - { - ?> -
      -
      -

      Welcome to

      -

      - Clearfy -

      -

      -
      - -
      - render_button(true, false, __('Yes, I want to try the wizard'), 'center'); ?> - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Google_Page_Speed_After extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $prev_id = 'step5'; - protected $id = 'step6'; - protected $next_id = 'step7'; - - /** - * Retrieves the title. - * - * @return string The title of the site. - */ - public function get_title(): string - { - return __("Site test #2", 'clearfy'); - } - - /** - * Outputs the HTML content for displaying Google Page Speed statistics and analyses. - * - * The method integrates with the Google PageSpeed Insights API to analyze a website and display - * the results, including scores for desktop and mobile versions, and key performance metrics such - * as Speed Index and Time to Interactive. It also provides a link to view the complete results - * on the official Google PageSpeed Insights platform. - * - * Additionally, this method manages the rendering of UI components for displaying scores, - * statistics, and preloader icons. - * - * @return void - */ - public function html(): void - { - ?> - -
      -

      -

      - -

      -
      - -
      -
      - -
      - render_button(); ?> - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Google_Page_Speed_Before extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $prev_id = 'step0'; - protected $id = 'step1'; - protected $next_id = 'step2'; - - /** - * Retrieves the title of the site. - * - * @return string The translated site title. - */ - public function get_title(): string - { - return __("Site test #1", 'clearfy'); - } - - /** - * Outputs the HTML and JavaScript for the Google Page Speed results interface. - * This method includes a script to initiate fetching of Google Page Speed audits and displays desktop and mobile score results. - * It also provides statistical insights and a link to view detailed results on Google PageSpeed Insights. - * - * @return void - * @throws \Exception - */ - public function html(): void - { - ?> - -
      -

      -

      - -

      -
      -
      -
      - -
      - render_button(); ?> - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Optimize_Images extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $prev_id = 'step4'; - protected $id = 'step5'; - protected $next_id = 'step6'; - - /** - * Class constructor. - * - * @param \WBCR\Factory_Templates_134\Pages\Setup $page An instance of the Setup page to initialize the constructor. - * @return void - */ - public function __construct(\WBCR\Factory_Templates_134\Pages\Setup $page) - { - parent::__construct($page); - } - - - /** - * Retrieves the title of the current context. - * - * @return string The title "Optimize images". - */ - public function get_title(): string - { - return __("Optimize images", 'clearfy'); - } - - /** - * {@inheritdoc} - */ - public function assets($scripts, $styles): void - { - parent::assets($scripts, $styles); - - $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/step-optimize-images.css'); - - if (defined('WRIO_PLUGIN_ACTIVE')) { - $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/Chart.min.js', ['jquery'], 'wrio-charts'); - $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/statistic.js', ['jquery', 'wrio-charts']); - } - } - - /** - * Renders the HTML for the image optimization page in the plugin interface. - * - * This method checks if the plugin is active and, if so, displays the optimization statistics - * and related user interface elements. It provides data about unoptimized, optimized, and error statistics. - * If the plugin is not active, it renders alternate HTML content. - * - * @return void - */ - public function html(): void - { - if (!defined('WRIO_PLUGIN_ACTIVE')) { - $this->alternate_html(); - - return; - } - - $is_premium = wrio_is_license_activate(); - $statistics = \WRIO_Image_Statistic::get_instance(); - - $data = [ - 'is_premium' => $is_premium, - 'scope' => 'media-library', - 'stats' => $statistics->get() - ]; - ?> - -
      -

      -

      - -

      -
      -
      -
      - - -
      - % -
      -

      - - - % - - -

      -
      -
      -
      -
        -
      • - - - - - - -
      • -
      • - - - - - - -
      • -
      • - - - - - - -
      • -
      -
      -

      -
      -

      -
      -
      - - - -
      -
      -

      -
      -
      - - - -
      -
      -
      -
      -

      - - % - - - by using Image Optimizer", 'robin-image-optimizer'); ?> - -

      -
      -
      -
      -
      - -
      - render_button(true, true, __('Shedule optimization and Continue', 'clearfy')); ?> - updatePopulateOption('cron_running', 'media-library'); - \WRIO_Cron::start(); - } - parent::continue_step($skip); - } - - - /** - * Outputs the HTML content for the alternate setup interface related to image optimization. - * - * This method generates a section prompting the user to install or activate the "Robin Image Optimizer" plugin. - * Includes an installation button and renders additional necessary controls for setup completion. - * - * @return void - * @throws \Exception - */ - private function alternate_html(): void - { - $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php'); - $install_robin_plugin_btn->add_class('wclearfy-setup__install-component-button'); - - ?> -
      -

      -

      - -

      - -

      render_button(); ?>

      -
      - render_button(false, true); ?> - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Plugins extends \WBCR\Factory_Templates_134\Pages\Step_Custom -{ - - protected $prev_id = 'step1'; - protected $id = 'step2'; - protected $next_id = 'step3'; - - /** - * Retrieves the title for the setup plugins section. - * - * @return string The localized title text. - */ - public function get_title(): string - { - return __("Setup Plugins", "clearfy"); - } - - /** - * Renders the HTML content for displaying and installing recommended plugins and components. - * - * This method displays a structured interface that lists plugins and components - * along with their associated benefits. It provides installation buttons to include - * these plugins and components for optimizing the site. - * - * @return void - * @throws \Exception - */ - public function html(): void - { - $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php'); - $install_wp_super_cache_btn = $this->plugin->get_install_component_button('wordpress', 'wp-super-cache/wp-cache.php'); - $install_assets_manager_component_btn = $this->plugin->get_install_component_button('internal', 'assets_manager'); - $install_minify_and_combine_component_btn = $this->plugin->get_install_component_button('internal', 'minify_and_combine'); - ?> -
      -

      -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Robin image optimizer+10+15 - render_link(); ?> -
      Assets manager component+5+10render_link(); ?>
      Minify and Combine component+10+15render_link(); ?>
      -
      - render_button(); ?> - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Setting_Seo extends \WBCR\Factory_Templates_134\Pages\Step_Form -{ - - protected $prev_id = 'step3'; - protected $id = 'step4'; - protected $next_id = 'step5'; - - /** - * Retrieves the title for the "Optimize SEO" feature. - * - * @return string The translated title for the "Optimize SEO" feature. - */ - public function get_title(): string - { - return __("Optimize SEO", "clearfy"); - } - - /** - * Retrieves the description for the settings form. - * - * @return string The translated description recommending settings to complement the SEO plugin. - */ - public function get_form_description(): string - { - return __('Recommended settings that can complement your SEO plugin.', 'clearfy'); - } - - /** - * Retrieves the configuration options for the form used in the system. - * These options define the properties of form controls, including type, layout, default values, and hints. - * The options also include conditional events based on plugin components, such as Yoast SEO. - * - * @return array An array of form configuration options. Each option is an associative array containing keys like type, way, name, title, - * layout, hint, default values, and conditional events related to plugin activation. - */ - public function get_form_options(): array - { - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'content_image_auto_alt', - 'title' => __('Automatically set the alt attribute', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '

      Clearfy: ' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), 'img scr="" alt=""', 'img scr="" alt="Hello world"'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'set_last_modified_headers', - 'title' => __('Automatically insert the Last Modified header', 'clearfy'), - 'default' => false, - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Automatically insert the Last Modified header', 'clearfy') . '
      Clearfy: ' . __('Removes attachment pages and puts a redirect.', 'clearfy'), - 'eventsOn' => [ - 'show' => '.factory-control-disable_frontpage_last_modified_headers' - ], - 'eventsOff' => [ - 'hide' => '.factory-control-disable_frontpage_last_modified_headers' - ] - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'if_modified_since_headers', - 'title' => __('Return an If-Modified-Since responce', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Return an If-Modified-Since responce.', 'clearfy') . '
      Clearfy: ' . __('Removes attachment pages and puts a redirect.', 'clearfy'), - - 'default' => false - ]; - - if ($this->plugin->isActivateComponent('yoast_seo')) { - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_last_item_breadcrumb_yoast', - 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '

      Clearfy: ' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_image_from_xml_sitemap', - 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image

      Clearfy: ' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '
      --
      ' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '' . '
      ' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '', - 'default' => true, - 'eventsOn' => [] - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_json_ld_search', - 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '', - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . '
      Clearfy: ' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_json_ld_output', - 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' ', - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Prevents output of the script tag of type application/ld+json containing -schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins. -There is currently no UI to do so.', 'clearfy') . '
      Clearfy: ' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'yoast_remove_head_comment', - 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '

      Clearfy: ' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'), - 'default' => true - ]; - } - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_date', - 'title' => __('Remove archives date', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '
      Clearfy: ' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_archives_author', - 'title' => __('Remove author archives ', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '
      Clearfy: ' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'attachment_pages_redirect', - 'title' => __('Remove attachment pages', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '
      Clearfy: ' . __('Removes attachment pages and puts a redirect.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_replytocom', - 'title' => __('Remove ?replytocom', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '
      Clearfy: ' . __('?relpytocom remove and and puts a redirect.', 'clearfy'), - 'default' => true - ]; - - return $options; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-setting-speed-optimize.php b/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-setting-speed-optimize.php deleted file mode 100644 index 9a865cb8..00000000 --- a/wp-content/plugins/!clearfy/admin/pages/setup/steps/class-step-setting-speed-optimize.php +++ /dev/null @@ -1,319 +0,0 @@ - - * @copyright (c) 23.07.2020, Webcraftic - * @version 1.0 - */ -class Step_Setting_Speed_Optimize extends \WBCR\Factory_Templates_134\Pages\Step_Form -{ - - protected $prev_id = 'step2'; - protected $id = 'step3'; - protected $next_id = 'step4'; - - /** - * Retrieves the title text. - * - * @return string The translated title string. - */ - public function get_title(): string - { - return __("Optimize speed", "clearfy"); - } - - /** - * Retrieves the description of the form. - * - * @return string The translated description of the form. - */ - public function get_form_description(): string - { - return __('Caching allows your WordPress site to skip a lot of steps. Instead of going through the whole page generation process every time, your caching plugin makes a copy of the page - after the first load, and then serves that cached version to every subsequent user.', 'clearfy'); - } - - /** - * Retrieves a list of form options for configuring plugin settings. - * - * @return array An array of form configuration options, including types, names, titles, layouts, hints, default values, - * and event handlers for JavaScript and CSS optimization, as well as options for removing unnecessary - * WordPress features (e.g., emojis, RSD link, wlwmanifest link, shortlink). - */ - public function get_form_options(): array - { - /*$options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'enable_cache_plugin', - 'title' => __('Enable Caching', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Enable simple caching. If you require expert caching, go to the advanced settings of the wp super cache plugin.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_caching_for_logged_visitors', - 'title' => __('Disable caching for logged in visitors', 'clearfy') . ' (' . __('Recommended', 'clearfy') . ')', - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Caching won\'t work for authenticated users.', 'clearfy'), - 'default' => true - ];*/ - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'js_optimize', - 'title' => __('Optimize JavaScript Code?', 'minify-and-combine'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - //'hint' => __('Optimize JavaScript Code.', 'minify-and-combine'), - 'default' => true, - 'eventsOn' => [ - 'show' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1' - ], - 'eventsOff' => [ - 'hide' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1' - ] - ]; - - /*$options[] = array( - 'type' => 'html', - 'html' => array( $this, 'optimizationDangerMessage1' ) - );*/ - - $js_options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'js_aggregate', - 'title' => __('Aggregate JS-files?', 'minify-and-combine'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'minify-and-combine'), - 'default' => false, - 'eventsOn' => [ - 'show' => '#wbcr-mac-optimization-danger-message-2' - ], - 'eventsOff' => [ - 'hide' => '#wbcr-mac-optimization-danger-message-2' - ] - ]; - - $js_options[] = [ - 'type' => 'html', - 'html' => [$this, 'optimizationDangerMessage2'] - ]; - - $options[] = [ - 'type' => 'div', - 'id' => 'wbcr-mac-optimize-js-fields', - 'items' => $js_options - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'css_optimize', - 'title' => __('Optimize CSS Code?', 'minify-and-combine'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('If your scripts break because of a JS-error, you might want to try this.', 'minify-and-combine'), - 'default' => true, - 'eventsOn' => [ - 'show' => '#wbcr-clr-optimize-css-fields' - ], - 'eventsOff' => [ - 'hide' => '#wbcr-clr-optimize-css-fields' - ] - ]; - - $css_options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'css_aggregate', - 'title' => __('Aggregate CSS-files?', 'minify-and-combine'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'minify-and-combine'), - 'default' => false, - 'eventsOn' => [ - 'show' => '#wbcr-mac-optimization-danger-message-4' - ], - 'eventsOff' => [ - 'hide' => '#wbcr-mac-optimization-danger-message-4' - ] - ]; - - $css_options[] = [ - 'type' => 'html', - 'html' => [$this, 'optimizationDangerMessage4'] - ]; - - $options[] = [ - 'type' => 'div', - 'id' => 'wbcr-clr-optimize-css-fields', - 'items' => $css_options - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_emoji', - 'title' => __('Disable Emojis', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '

      Clearfy: ' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_rsd_link', - 'title' => __('Remove RSD Link', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '
      link rel="EditURI" type="application/rsd+xml" title="RSD"

      Clearfy: ' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_wlw_link', - 'title' => __('Remove wlwmanifest Link', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => 'link rel="wlwmanifest" type="application/wlwmanifest+xml"
      ' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '

      Clearfy: ' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_shortlink_link', - 'title' => __('Remove Shortlink', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '
      link rel="shortlink" href="https://domain.com?p=712"
      ') . '

      Clearfy: ' . __('Remove Shortlink link tag.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_adjacent_posts_link', - 'title' => __('Remove links to previous, next post', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '

      Clearfy: ' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'), - 'default' => true - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_recent_comments_style', - 'title' => __('Remove .recentcomments styles', 'clearfy'), - 'layout' => ['hint-type' => 'icon'], - 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '

      Clearfy: ' . __('Removes .recentcomments styles from head section.', 'clearfy'), - 'default' => true - ]; - - return apply_filters('wclearfy/setup_wizard/speed_optimize_step/form_options', $options); - } - - /** - * Displays a warning message indicating potential risks associated with activating a specific optimization setting. - * - * @param int $selector_id The unique identifier for the warning message container. Defaults to 1. - * - * @return void Outputs the HTML structure of the warning message directly to the page. - */ - public function optimizationDangerMessage($selector_id = 1): void - { - ?> -
      - -
      -
      - This could break things!
      If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal.', 'clearfy') ?> -
      -
      -
      - optimizationDangerMessage(1); - } - - /** - * Triggers a specific optimization danger message corresponding to level 2. - * - * @return void - */ - public function optimizationDangerMessage2(): void - { - $this->optimizationDangerMessage(2); - } - - /** - * Triggers a specific optimization danger message corresponding to level 3. - * - * @return void - */ - public function optimizationDangerMessage3(): void - { - $this->optimizationDangerMessage(3); - } - - /** - * Triggers a specific optimization danger message corresponding to level 4. - * - * @return void - */ - public function optimizationDangerMessage4(): void - { - $this->optimizationDangerMessage(4); - } - - /** - * Executes the continuation of the current setup wizard step, with an optional skip parameter. - * - * @param bool $skip Determines if the step should be skipped. Default is false. - * @return void - */ - protected function continue_step($skip = false): void - { - do_action('wclearfy/setup_wizard/speed_optimize_step/continue_step'); - - parent::continue_step(); - } - -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/assets/css/admin-bar.css b/wp-content/plugins/!clearfy/assets/css/admin-bar.css deleted file mode 100644 index bf43708a..00000000 --- a/wp-content/plugins/!clearfy/assets/css/admin-bar.css +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Admin bar menu - * @author Webcraftic - * @copyright Webcraftic 01.07.2018 - */ -#wp-admin-bar-clearfy-menu { - background: #443a54 !important; -} -#wp-admin-bar-clearfy-menu::after { - clear: both; -} -#wp-admin-bar-clearfy-menu .dashicons { - font: 400 20px/1 dashicons; -} -#wp-admin-bar-clearfy-menu #wp-admin-bar-clearfy-menu-default { - background: #565656 !important; -} -#wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-icon { - display: inline-block !important; - width: 20px; - height: 25px; - margin-top: 6px; - margin-right: 5px; - float: left; - background: url(../img/webcraftic-plugin-icon.png) 0 0 no-repeat; -} -#wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title { - display: inline-block !important; - overflow: hidden; -} -#wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title .dashicons { - font-size: 20px !important; - padding: 6px 0 !important; -} -#wp-admin-bar-clearfy-menu .ab-item .dashicons { - font-size: 14px; - padding: 6px 0; -} -#wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-heart { - color: #fb7976; -} -#wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-sos { - color: #c6e9f9; -} -#wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-star-filled { - color: #ffbe00; -} -/*# sourceMappingURL=admin-bar.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/assets/js/css-lazy-load.js b/wp-content/plugins/!clearfy/assets/js/css-lazy-load.js deleted file mode 100644 index c563c2b4..00000000 --- a/wp-content/plugins/!clearfy/assets/js/css-lazy-load.js +++ /dev/null @@ -1,101 +0,0 @@ -/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ - -// https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js - -(function(w) { - "use strict"; - /* exported loadCSS */ - var loadCSS = function(href, before, media) { - // Arguments explained: - // `href` [REQUIRED] is the URL for your CSS file. - // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet - // before By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. - // However, you might desire a more specific location in your document. `media` [OPTIONAL] is the media type or - // query of the stylesheet. By default it will be 'all' - var doc = w.document; - var ss = doc.createElement("link"); - var ref; - if( before ) { - ref = before; - } - else { - var refs = ( doc.body || doc.getElementsByTagName("head")[0] ).childNodes; - ref = refs[refs.length - 1]; - } - - var sheets = doc.styleSheets; - ss.rel = "stylesheet"; - ss.href = href; - // temporarily set media to something inapplicable to ensure it'll fetch without blocking render - ss.media = "only x"; - - // wait until body is defined before injecting link. This ensures a non-blocking load in IE11. - function ready(cb) { - if( doc.body ) { - return cb(); - } - setTimeout(function() { - ready(cb); - }); - } - - // Inject link - // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the - // argument to "after" in a later release and standardize on ref.nextSibling for all refs Note: `insertBefore` - // is used instead of `appendChild`, for safety re: - // http://www.paulirish.com/2011/surefire-dom-element-insertion/ - ready(function() { - ref.parentNode.insertBefore(ss, ( before ? ref : ref.nextSibling )); - }); - // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets - // until it includes the new sheet. - var onloadcssdefined = function(cb) { - var resolvedHref = ss.href; - var i = sheets.length; - while( i-- ) { - if( sheets[i].href === resolvedHref ) { - return cb(); - } - } - setTimeout(function() { - onloadcssdefined(cb); - }); - }; - - function loadCB() { - if( ss.addEventListener ) { - ss.removeEventListener("load", loadCB); - } - ss.media = media || "all"; - } - - // once loaded, set link's media back to `all` so that the stylesheet applies once it loads - if( ss.addEventListener ) { - ss.addEventListener("load", loadCB); - } - ss.onloadcssdefined = onloadcssdefined; - onloadcssdefined(loadCB); - return ss; - }; - // commonjs - if( typeof exports !== "undefined" ) { - exports.loadCSS = loadCSS; - } - else { - w.loadCSS = loadCSS; - } -}(typeof global !== "undefined" ? global : this)); - -/**/ -jQuery(document).ready(function($) { - "use strict"; - - if( 'undefined' !== typeof wbcr_clearfy_async_links && Object.keys(wbcr_clearfy_async_links).length ) { - var key; - for( key in wbcr_clearfy_async_links ) { - if( wbcr_clearfy_async_links.hasOwnProperty(key) ) { - loadCSS(wbcr_clearfy_async_links[key]); - } - } - } -}); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/assets/js/css-lazy-load.min.js b/wp-content/plugins/!clearfy/assets/js/css-lazy-load.min.js deleted file mode 100644 index 86fb5147..00000000 --- a/wp-content/plugins/!clearfy/assets/js/css-lazy-load.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var n=function(n,t,r){var i,a=e.document,o=a.createElement("link");if(t)i=t;else{var l=(a.body||a.getElementsByTagName("head")[0]).childNodes;i=l[l.length-1]}var s=a.styleSheets;o.rel="stylesheet",o.href=n,o.media="only x",function e(n){if(a.body)return n();setTimeout(function(){e(n)})}(function(){i.parentNode.insertBefore(o,t?i:i.nextSibling)});var c=function(e){for(var n=o.href,t=s.length;t--;)if(s[t].href===n)return e();setTimeout(function(){c(e)})};function d(){o.addEventListener&&o.removeEventListener("load",d),o.media=r||"all"}return o.addEventListener&&o.addEventListener("load",d),o.onloadcssdefined=c,c(d),o};"undefined"!=typeof exports?exports.loadCSS=n:e.loadCSS=n}("undefined"!=typeof global?global:this),jQuery(document).ready(function(e){"use strict";var n;if("undefined"!=typeof wbcr_clearfy_async_links&&Object.keys(wbcr_clearfy_async_links).length)for(n in wbcr_clearfy_async_links)wbcr_clearfy_async_links.hasOwnProperty(n)&&loadCSS(wbcr_clearfy_async_links[n])}); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/clearfy.php b/wp-content/plugins/!clearfy/clearfy.php deleted file mode 100644 index 8a8f6f11..00000000 --- a/wp-content/plugins/!clearfy/clearfy.php +++ /dev/null @@ -1,208 +0,0 @@ - - * Version: 2.4.1 - * Text Domain: clearfy - * Domain Path: /languages/ - * Author URI: https://cm-wp.com - * Framework Version: FACTORY_480_VERSION - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' ); - -$plugin_info = [ - 'prefix' => 'wbcr_clearfy_', - 'plugin_name' => 'wbcr_clearfy', - 'plugin_title' => 'Clearfy', - - // PLUGIN SUPPORT - 'support_details' => [ - 'url' => 'http://clearfy.pro', - 'pages_map' => [ - 'features' => 'premium-features', // {site}/premium-features - 'pricing' => 'pricing', // {site}/prices - 'support' => 'support', // {site}/support - 'docs' => 'docs' // {site}/docs - ] - ], - //todo: for compatibility with Robin image optimizer - 'freemius_plugin_id' => '2315', - 'freemius_public_key' => 'pk_70e226af07d37d2b9a69720e0952c', - - 'has_updates' => true, - 'updates_settings' => [ - 'repository' => 'github', - 'alternate_updates_mode' => true, - 'github_username' => 'Creative-Motion-Development', // обязательно, имя пользователя репозитория в Github - 'github_authorize_token' => '', // необязательно, только если репозиторий приватный - 'github_repository' => 'wp-plugin-clearfy', // необязательно, если не заполнено берется из slug - 'slug' => 'clearfy', // обязательно, slug плагина - 'maybe_rollback' => false, - 'rollback_settings' => [ - 'prev_stable_version' => '0.0.0' - ] - ], - - // PLUGIN PREMIUM SETTINGS - 'has_premium' => true, - 'license_settings' => [ - 'provider' => 'freemius', - 'slug' => 'clearfy_package', - 'plugin_id' => '2315', - 'public_key' => 'pk_70e226af07d37d2b9a69720e0952c', - 'price' => 29, - 'has_updates' => true, - 'updates_settings' => [ - 'maybe_rollback' => true, - 'rollback_settings' => [ - 'prev_stable_version' => '0.0.0' - ] - ] - ], - - // PLUGIN SUBSCRIBE FORM - 'subscribe_widget' => true, - 'subscribe_settings' => [ 'group_id' => '105407119' ], - - // PLUGIN ADVERTS - 'render_adverts' => true, - 'adverts_settings' => [ - 'dashboard_widget' => true, // show dashboard widget (default: false) - 'right_sidebar' => true, // show adverts sidebar (default: false) - 'notice' => true, // show notice message (default: false) - ], - // FRAMEWORK MODULES - 'load_factory_modules' => [ - [ 'libs/factory/bootstrap', 'factory_bootstrap_482', 'admin' ], - [ 'libs/factory/forms', 'factory_forms_480', 'admin' ], - [ 'libs/factory/pages', 'factory_pages_480', 'admin' ], - [ 'libs/factory/templates', 'factory_templates_134', 'all' ], - [ 'libs/factory/freemius', 'factory_freemius_170', 'all' ], - [ 'libs/factory/adverts', 'factory_adverts_159', 'admin' ], - [ 'libs/factory/logger', 'factory_logger_149', 'all' ], - - ], - 'load_plugin_components' => [ - 'disable_notices' => [ - 'autoload' => 'components/disable-admin-notices/clearfy.php', - 'plugin_prefix' => 'WDN_' - ], - 'cyrlitera' => [ - 'autoload' => 'components/cyrlitera/clearfy.php', - 'plugin_prefix' => 'WCTR_' - ], - 'updates_manager' => [ - 'autoload' => 'components/updates-manager/clearfy.php', - 'plugin_prefix' => 'WUPM_' - ], - 'comments_tools' => [ - 'autoload' => 'components/comments-plus/clearfy.php', - 'plugin_prefix' => 'WCM_' - ], - 'ga_cache' => [ - 'autoload' => 'components/ga-cache/clearfy.php', - 'plugin_prefix' => 'WGA_' - ], - 'assets_manager' => [ - 'autoload' => 'components/assets-manager/clearfy.php', - 'plugin_prefix' => 'WGZ_' - ], - 'minify_and_combine' => [ - 'autoload' => 'components/minify-and-combine/clearfy.php', - 'plugin_prefix' => 'WMAC_' - ], - 'html_minify' => [ - 'autoload' => 'components/html-minify/clearfy.php', - 'plugin_prefix' => 'WHTM_' - ], - 'clearfy_cache' => [ - 'autoload' => 'components/cache/clearfy.php', - 'plugin_prefix' => 'WCACHE_' - ], - ] -]; - - - -$clearfy_compatibility = new Wbcr_Factory480_Requirements( __FILE__, array_merge( $plugin_info, [ - 'plugin_already_activate' => defined( 'WCL_PLUGIN_ACTIVE' ), - 'required_php_version' => '7.0', - 'required_wp_version' => '5.2.0', - 'required_clearfy_check_component' => false -] ) ); - -/** - * If the plugin is compatible, then it will continue its work, otherwise it will be stopped, - * and the user will throw a warning. - */ -if ( ! $clearfy_compatibility->check() ) { - return; -} - -/** - * ----------------------------------------------------------------------------- - * CONSTANTS - * Install frequently used constants and constants for debugging, which will be - * removed after compiling the plugin. - * ----------------------------------------------------------------------------- - */ - -// This plugin is activated -define( 'WCL_PLUGIN_ACTIVE', true ); - -// For for compatibility with old plugins -define( 'WBCR_CLEARFY_PLUGIN_ACTIVE', true ); - -// Plugin version -define( 'WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version() ); -define( 'WCL_FRAMEWORK_VER', 'FACTORY_480_VERSION' ); - -define( 'WCL_PLUGIN_DIR', dirname( __FILE__ ) ); -define( 'WCL_PLUGIN_BASE', plugin_basename( __FILE__ ) ); -define( 'WCL_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - - - -/** - * ----------------------------------------------------------------------------- - * PLUGIN INIT - * ----------------------------------------------------------------------------- - */ -try { - // creating a plugin via the factory - require_once( WCL_PLUGIN_DIR . '/libs/factory/core/boot.php' ); - require_once( WCL_PLUGIN_DIR . '/includes/class.plugin.php' ); - - new WCL_Plugin( __FILE__, array_merge( $plugin_info, [ - 'plugin_version' => WCL_PLUGIN_VERSION, - 'plugin_text_domain' => $clearfy_compatibility->get_text_domain(), - ] ) ); -} catch ( Exception $e ) { - // Plugin wasn't initialized due to an error - define( 'WCL_PLUGIN_THROW_ERROR', true ); - - $clearfy_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Clearfy', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $clearfy_plugin_error_func ); - add_action( 'network_admin_notices', $clearfy_plugin_error_func ); -} - diff --git a/wp-content/plugins/!clearfy/components/assets-manager/admin/activation.php b/wp-content/plugins/!clearfy/components/assets-manager/admin/activation.php deleted file mode 100644 index d1768efd..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/admin/activation.php +++ /dev/null @@ -1,32 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 09.03.2018, Webcraftic - * @see Wbcr_Factory480_Activator - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WGNZ_Activation extends Wbcr_Factory480_Activator { - - /** - * Runs activation actions. - */ - public function activate() { - wbcr_gnz_deploy_mu_plugin(); - } - - /** - * Runs deactivation actions. - */ - public function deactivate() { - wbcr_gnz_remove_mu_plugin(); - } -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/admin/ajax/save-settings.php b/wp-content/plugins/!clearfy/components/assets-manager/admin/ajax/save-settings.php deleted file mode 100644 index f2cbf34d..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/admin/ajax/save-settings.php +++ /dev/null @@ -1,109 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 21.09.2019, Webcraftic - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -/** - * Ajax action for save plugin settings. - * - * @author Alexander Kovalev - * @since 2.0.0 - */ -function wam_save_settings_action() -{ - check_ajax_referer('wam_save_settigns'); - - if( !current_user_can('manage_options') ) { - wp_send_json_error([ - 'error_message_title' => __('Save settings failed!', 'gonzales'), - 'error_message_content' => __('You don\'t have enough capability to edit this information.', 'gonzales') - ]); - } - - $save_message_title = __('Settings saved successfully!', 'clearfy'); - $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'); - $scope = WGZ_Plugin::app()->request->post('scope', 'frontend'); - $raw_updated_settings = WGZ_Plugin::app()->request->post('settings', [], true); - - if( !empty($raw_updated_settings) ) { - if( 'networkadmin' === $scope ) { - $settings = WGZ_Plugin::app()->getNetworkOption('backend_assets_states', []); - } else if( 'admin' === $scope ) { - $settings = WGZ_Plugin::app()->getOption('backend_assets_states', []); - } else { - $settings = WGZ_Plugin::app()->getOption('assets_states', []); - } - - if( !defined('WGZP_PLUGIN_ACTIVE') || (is_array($settings) && !isset($settings['save_mode'])) ) { - $settings['save_mode'] = false; - } - - if( !empty($raw_updated_settings['plugins']) ) { - foreach((array)$raw_updated_settings['plugins'] as $plugin_name => $plugin_group) { - if( !empty($plugin_group['load_mode']) ) { - if( 'enable' == $plugin_group['load_mode'] ) { - $plugin_group['visability'] = ""; - } else { - foreach(['js', 'css'] as $assets_type) { - if( !empty($plugin_group[$assets_type]) ) { - foreach($plugin_group[$assets_type] as $resource_handle => $resource_params) { - $plugin_group[$assets_type][$resource_handle]['visability'] = ""; - } - } - } - } - } - - $settings['plugins'][$plugin_name] = $plugin_group; - } - } - - if( !empty($raw_updated_settings['theme']) ) { - $settings['theme'] = $raw_updated_settings['theme']; - } - - if( !empty($raw_updated_settings['misc']) ) { - $settings['misc'] = $raw_updated_settings['misc']; - } - - /** - * Filter run before save settings. - * - * @param array $settings - * @param array $raw_updated_settings - * @param string $scope - */ - $settings = apply_filters('wam/before_save_settings', $settings, $raw_updated_settings, $scope); - - if( 'networkadmin' === $scope ) { - WGZ_Plugin::app()->updateNetworkOption('backend_assets_states', $settings); - } else if( 'admin' === $scope ) { - WGZ_Plugin::app()->updateOption('backend_assets_states', $settings); - } else { - WGZ_Plugin::app()->updateOption('assets_states', $settings); - } - - // If mu plugin does not exist, install it. - wbcr_gnz_deploy_mu_plugin(); - - // Flush cache for all cache plugins - WBCR\Factory_Templates_134\Helpers::flushPageCache(); - } - - wp_send_json_success([ - 'save_massage_title' => $save_message_title, - 'save_message_content' => $save_message_content - ]); -} - -add_action('wp_ajax_nopriv_wam-save-settings', 'wam_save_settings_action'); -add_action('wp_ajax_wam-save-settings', 'wam_save_settings_action'); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/admin/boot.php b/wp-content/plugins/!clearfy/components/assets-manager/admin/boot.php deleted file mode 100644 index 882280f7..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/admin/boot.php +++ /dev/null @@ -1,211 +0,0 @@ - - * @copyright Webcraftic 25.05.2017 - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -if( defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) { - - /** - * Уведомление, которое сообщает о возможности импорта опций из плагина Assets manager в Clearfy - * - * @param array $notices - */ - /*add_filter( 'wbcr/factory/admin_notices', function ( $notices ) { - - if ( is_multisite() && is_network_admin() ) { - $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' ); - } else { - $am_options = get_option( 'wbcr_gnz_assets_manager_options' ); - } - - if ( $am_options ) { - $notice_text = '

      Clearfy: ' . __( 'We detected that you used the Assets manager plugin. Do you want to import settings from this plugin to the Clearfy plugin?', 'gonzales' ) . '

      '; - $notice_text .= '

      ' . __( 'Import options', 'gonzales' ) . '

      '; - - $notices[] = [ - 'id' => 'gnz_plugin_import_options', - 'type' => 'warning', - 'dismissible' => true, - 'dismiss_expires' => 0, - 'text' => $notice_text - ]; - } - - if ( isset( $_GET['wbcr_assets_manager_transfer_completed'] ) ) { - $notices[] = [ - 'id' => 'gnz_plugin_transfer_options_completed', - 'type' => 'success', - 'dismissible' => false, - 'dismiss_expires' => 0, - 'text' => '

      Clearfy: ' . __( 'Settings has been successfully imported!', 'gonzales' ) - ]; - } - - return $notices; - }, 10, 2 );*/ - - /** - * Импорт опций из плагина Assets manager в плагин Clearfy. - * При попытке использовать премиум версию, у многих пользователей уже настроен бесплатный плагин и - * на ручной перенос настроек уходит очень много времени. Этот кусок кода решает проблему переноса настроек между плагинами. - */ - /*add_action( 'admin_init', function () { - if ( isset( $_GET['wbcr_assets_manager_transfer'] ) ) { - global $wpdb; - - if ( is_multisite() && is_network_admin() ) { - $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' ); - } else { - $am_options = get_option( 'wbcr_gnz_assets_manager_options' ); - } - - if ( ! $am_options || ! class_exists( 'WCL_Plugin' ) ) { - return; - } - - $am_prefix = 'wbcr_gnz_'; - - if ( is_multisite() && is_network_admin() ) { - $request = $wpdb->get_results( "SELECT meta_key, meta_value - FROM {$wpdb->sitemeta} - WHERE option_name LIKE '{$am_prefix}_%'" ); - } else { - $request = $wpdb->get_results( "SELECT option_name, option_value - FROM {$wpdb->options} - WHERE option_name LIKE '{$am_prefix}_%'" ); - } - - if ( $request ) { - foreach ( (array) $request as $option ) { - if ( is_multisite() && is_network_admin() ) { - $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->meta_key ); - update_site_option( $new_option_name, $option->meta_value ); - delete_site_option( $option->meta_key ); - } else { - $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->option_name ); - update_option( $new_option_name, $option->option_value ); - delete_option( $option->option_name ); - } - } - - wp_redirect( admin_url( '?wbcr_assets_manager_transfer_completed' ) ); - die(); - } - } - } );*/ - - function wbcr_gnz_group_options($options) - { - $options[] = [ - 'name' => 'disable_assets_manager', - 'title' => __('Disable assets manager', 'gonzales'), - 'tags' => [], - 'values' => [] - ]; - - $options[] = [ - 'name' => 'disable_assets_manager_panel', - 'title' => __('Disable assets manager panel', 'gonzales'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'disable_assets_manager_on_front', - 'title' => __('Disable assets manager on front', 'gonzales'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'disable_assets_manager_on_backend', - 'title' => __('Disable assets manager on back-end', 'gonzales'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'manager_options', - 'title' => __('Assets manager options', 'gonzales'), - 'tags' => [] - ]; - - return $options; - } - - add_filter("wbcr_clearfy_group_options", 'wbcr_gnz_group_options'); -} else { - - /** - * Удаляем лишние виджеты в левом сайдбаре - * - * @param array $widgets - * @param string $position - * @param Wbcr_Factory480_Plugin $plugin - */ - add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) { - if( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) { - unset($widgets['business_suggetion']); - - if( $position == 'right' ) { - unset($widgets['donate_widget']); - unset($widgets['rating_widget']); - unset($widgets['info_widget']); - } - } - - return $widgets; - }, 20, 3); - - /** - * Заменяем премиум возможности в бизнес виджете - * - * @param array $features - * @param string $page_id - * @param string $plugin - */ - add_filter('wbcr/clearfy/pages/suggetion_features', function ($features, $plugin_name, $page_id) { - - if( !empty($plugin_name) && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) { - $upgrade_feature = []; - $upgrade_feature[] = __('Disable plugins (groups of scripts)', 'gonzales'); - $upgrade_feature[] = __('Conditions by the link template', 'gonzales'); - $upgrade_feature[] = __('Conditions by the regular expression', 'gonzales'); - $upgrade_feature[] = __('Safe mode', 'gonzales'); - $upgrade_feature[] = __('Statistics and optimization results', 'gonzales'); - - return $upgrade_feature; - } - - return $features; - }, 20, 3); - - function wbcr_gnz_set_plugin_meta($links, $file) - { - if( $file == WGZ_PLUGIN_BASE ) { - $url = WGZ_Plugin::app()->get_support()->get_tracking_page_url('assets-manager', 'plugin_row'); - $links[] = '' . __('Get premium', 'gonzales') . ''; - } - - return $links; - } - - add_filter('plugin_row_meta', 'wbcr_gnz_set_plugin_meta', 10, 2); - - function wbcr_gnz_rating_widget_url($page_url, $plugin_name) - { - if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) { - return 'https://goo.gl/zyNV6z'; - } - - return $page_url; - } - - add_filter('wbcr_factory_pages_480_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2); -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-more-features.php b/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-more-features.php deleted file mode 100644 index 329b7733..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-more-features.php +++ /dev/null @@ -1,22 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WGZ_MoreFeaturesPage extends \WBCR\Factory_Templates_134\Pages\MoreFeatures { - -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-settings.php b/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-settings.php deleted file mode 100644 index 0860b6f1..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/admin/pages/class-pages-settings.php +++ /dev/null @@ -1,170 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WGZ_AssetsManagerPage extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * The id of the page in the admin menu. - * - * Mainly used to navigate between pages. - * - * @since 1.0.0 - * @see FactoryPages480_AdminPage - * - * @var string - */ - public $id = "gonzales"; - - /** - * @var string - */ - public $page_menu_dashicon = 'dashicons-image-filter'; - - /** - * @var int - */ - public $page_menu_position = 95; - - /** - * Доступена для мультисайтов - * - * @var bool - */ - public $available_for_multisite = true; - - /** - * @param Wbcr_Factory480_Plugin $plugin - */ - public function __construct(Wbcr_Factory480_Plugin $plugin) - { - $this->menu_title = __('Assets manager', 'gonzales'); - - if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) { - $this->internal = false; - $this->menu_target = 'options-general.php'; - $this->add_link_to_plugin_actions = true; - $this->show_search_options_form = false; - } else { - $this->page_parent_page = 'performance'; - } - - parent::__construct($plugin); - } - - /** - * Метод позволяет менять заголовок меню, в зависимости от сборки плагина. - * - * @return string|void - */ - public function getMenuTitle() - { - return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('General', 'hide-login-page') : __('Assets manager', 'gonzales'); - } - - /** - * @return string|void * - */ - public function getPageTitle() - { - return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('Assets manager', 'gonzales') : __('General', 'hide-login-page'); - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - $options = []; - $options[] = [ - 'type' => 'html', - 'html' => '

      ' . __('Disable unused scripts, styles, and fonts', 'gonzales') . '

      ' . __('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') . '

      ' - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_assets_manager', - 'title' => __('Disable assets manager', 'gonzales'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Full disable of the module.', 'gonzales'), - 'eventsOn' => [ - 'hide' => '#wbcr-gnz-asset-manager-extend-options' - ], - 'eventsOff' => [ - 'show' => '#wbcr-gnz-asset-manager-extend-options' - ], - 'default' => false - ]; - - $options[] = [ - 'type' => 'div', - 'id' => 'wbcr-gnz-asset-manager-extend-options', - 'items' => [ - [ - 'type' => 'separator', - 'cssClass' => 'factory-separator-dashed' - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_assets_manager_panel', - 'title' => __('Disable assets manager panel', 'gonzales'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - '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'), - 'default' => false - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_assets_manager_on_front', - 'title' => __('Disable assets manager on front', 'gonzales'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Disables assets manager initialization for frontend.', 'gonzales'), - 'default' => false - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_assets_manager_on_backend', - 'title' => __('Disable assets manager on back-end', 'gonzales'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Disables assets manager initialization for backend.', 'gonzales'), - 'default' => true - ] - ] - ]; - - $options[] = [ - 'type' => 'separator', - 'cssClass' => 'factory-separator-dashed' - ]; - - $formOptions = []; - - $formOptions[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters('wbcr_gnz_assets_manager_options', $formOptions); - } -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/PNotifyBrightTheme.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/PNotifyBrightTheme.css deleted file mode 100644 index 418b4da2..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/PNotifyBrightTheme.css +++ /dev/null @@ -1,224 +0,0 @@ -/* -Color Scheme: http://paletton.com/palette.php?uid=c1T3n2J040kpEKzpEKzbEPSOEyiNk9W -*/ -[ui-pnotify].ui-pnotify { - z-index: 999999999 !important; -} - -[ui-pnotify].ui-pnotify .brighttheme { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -[ui-pnotify].ui-pnotify .brighttheme.ui-pnotify-container { - padding: 1.3rem; -} - -[ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title, -[ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text, -[ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm { - margin-left: 1.8rem; -} - -[dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title, -[dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text, -[dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm { - margin-right: 1.8rem; - margin-left: 0; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-title { - font-size: 1.2rem; - line-height: 1.4rem; - margin-top: -.2rem; - margin-bottom: 1rem; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-text { - font-size: 1rem; - line-height: 1.2rem; - margin-top: 0; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-icon { - line-height: 1; -} - -[ui-pnotify].ui-pnotify .brighttheme-notice { - background-color: #FFFFA2; - border: 0 solid #FFFF00; -} - -[ui-pnotify].ui-pnotify .brighttheme-notice h4, -[ui-pnotify].ui-pnotify .brighttheme-notice div { - color: #4F4F00; -} - -[ui-pnotify].ui-pnotify .brighttheme-info { - background-color: #8FCEDD; - border: 0 solid #0286A5; -} - -[ui-pnotify].ui-pnotify .brighttheme-info h4, -[ui-pnotify].ui-pnotify .brighttheme-info div { - color: #012831; -} - -[ui-pnotify].ui-pnotify .brighttheme-success { - background-color: #AFF29A; - border: 0 solid #35DB00; -} - -[ui-pnotify].ui-pnotify .brighttheme-success h4, -[ui-pnotify].ui-pnotify .brighttheme-success div { - color: #104300; -} - -[ui-pnotify].ui-pnotify .brighttheme-error { - background-color: #FFABA2; - background-image: repeating-linear-gradient(135deg, transparent, transparent 35px, rgba(255, 255, 255, .3) 35px, rgba(255, 255, 255, .3) 70px); - border: 0 solid #FF1800; -} - -[ui-pnotify].ui-pnotify .brighttheme-error h4, -[ui-pnotify].ui-pnotify .brighttheme-error div { - color: #4F0800; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-closer, -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-sticker { - font-size: 1rem; - line-height: 1.2rem; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-notice, -[ui-pnotify].ui-pnotify .brighttheme-icon-info, -[ui-pnotify].ui-pnotify .brighttheme-icon-success, -[ui-pnotify].ui-pnotify .brighttheme-icon-error, -[ui-pnotify].ui-pnotify .brighttheme-icon-closer, -[ui-pnotify].ui-pnotify .brighttheme-icon-sticker { - position: relative; - width: 1rem; - height: 1rem; - font-size: 1rem; - font-weight: bold; - line-height: 1rem; - font-family: "Courier New", Courier, monospace; - border-radius: 50%; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-notice:after, -[ui-pnotify].ui-pnotify .brighttheme-icon-info:after, -[ui-pnotify].ui-pnotify .brighttheme-icon-success:after, -[ui-pnotify].ui-pnotify .brighttheme-icon-closer:after, -[ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after { - position: absolute; - top: 0; - left: .2rem; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-notice { - background-color: #2E2E00; - color: #FFFFA2; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-notice:after { - content: "!"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-info { - background-color: #012831; - color: #8FCEDD; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-info:after { - content: "i"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-success { - background-color: #104300; - color: #AFF29A; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-success:after { - content: "\002713"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-error { - width: 0; - height: 0; - font-size: 0; - line-height: 0; - border-radius: 0; - border-left: .6rem solid transparent; - border-right: .6rem solid transparent; - border-bottom: 1.2rem solid #2E0400; - color: #FFABA2; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-error:after { - position: absolute; - top: .1rem; - left: -0.25rem; - font-size: .9rem; - font-weight: bold; - line-height: 1.4rem; - font-family: "Courier New", Courier, monospace; - content: "!"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-closer, -[ui-pnotify].ui-pnotify .brighttheme-icon-sticker { - display: inline-block; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-closer:after { - content: "\002715"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after { - top: -1px; - content: "\002016"; -} - -[ui-pnotify].ui-pnotify .brighttheme-icon-sticker.brighttheme-icon-stuck:after { - content: "\00003E"; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-confirm { - margin-top: 1rem; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-prompt-bar { - margin-bottom: 1rem; -} - -[ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-action-button { - text-transform: uppercase; - font-weight: bold; - padding: .4rem 1rem; - border: none; - background: transparent; - cursor: pointer; -} - -[ui-pnotify].ui-pnotify .brighttheme-notice .ui-pnotify-action-button.brighttheme-primary { - background-color: #FFFF00; - color: #4F4F00; -} - -[ui-pnotify].ui-pnotify .brighttheme-info .ui-pnotify-action-button.brighttheme-primary { - background-color: #0286A5; - color: #012831; -} - -[ui-pnotify].ui-pnotify .brighttheme-success .ui-pnotify-action-button.brighttheme-primary { - background-color: #35DB00; - color: #104300; -} - -[ui-pnotify].ui-pnotify .brighttheme-error .ui-pnotify-action-button.brighttheme-primary { - background-color: #FF1800; - color: #4F0800; -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-conditions.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-conditions.css deleted file mode 100644 index dbfda0a9..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-conditions.css +++ /dev/null @@ -1,175 +0,0 @@ -/* ==*/ -#WBCR-AM .wam-cleditor { - box-sizing: border-box; - /* Conditions */ - /* Buttons */ -} -#WBCR-AM .wam-cleditor input { - float: none; - position: relative; - top: 0; - padding: 4px; -} -#WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-taxonomy"], -#WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-post-type"], -#WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-some-page"] { - display: none; -} -#WBCR-AM .wam-cleditor .wam-cleditor__text { - width: 300px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__box { - padding: 25px 15px 15px 15px; - border-left: 1px solid #ddd; - background-color: #f9f9f9; -} -#WBCR-AM .wam-cleditor .wam-cleditor__when-empty { - display: none; -} -#WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__when-empty { - display: block; -} -#WBCR-AM .wam-cleditor .wam-cleditor__head { - display: flex; - overflow: auto; - background-color: #fff; - border-bottom: 1px solid #ddd; - border-left: 1px solid #ddd; - padding: 10px 15px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left, -#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right { - display: inline-block; -} -#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left { - text-align: left; - flex: 2 0 0; -} -#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right { - text-align: right; - flex: 1 0 0; -} -#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__first-group-title { - text-transform: uppercase; - margin: 0; - font-weight: 600; - font-size: 14px; - line-height: 2.3; -} -#WBCR-AM .wam-cleditor .wam-cleditor__wrap .wam-cleditor__groups { - padding-left: 20px; - border-left: 1px solid #ddd; -} -#WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point { - background-color: #fff; - border: 1px solid #0073aa; - border-radius: 100%; - width: 11px; - height: 11px; - display: block; - position: absolute; - margin-left: -26px; - margin-top: 19px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point:after { - position: absolute; - content: " "; - display: block; - width: 15px; - border-top: 1px solid #ddd; - margin-left: 10px; - margin-top: 4px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__group { - /*@{prefix}__group + @{prefix}__group { - margin-top: 20px; - }*/ -} -#WBCR-AM .wam-cleditor .wam-cleditor__group .wam-cleditor__group-type { - display: none; - text-transform: uppercase; - margin: 0; - line-height: 2.3; - font-size: 12px; - font-weight: bold; - font-style: normal; - color: #222; - background: #f3f3f3; - text-align: center; - border-radius: 3px; - padding: 5px 10px 5px 10px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__conditions { - display: none; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition { - position: relative; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint, -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-content { - display: none; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint { - position: relative; - display: inline-block; - padding: 0 6px 0 3px; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-icon { - background: url('../img/help.png') no-repeat 0 0 transparent; - position: relative; - height: 14px; - width: 13px; - display: inline-block; - cursor: help; - vertical-align: middle; - top: -1px; - opacity: 0.55; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint:hover .wam-cleditor__hint-content { - display: block; - position: absolute; - width: 280px; - background-color: rgba(0, 0, 0, 0.8); - white-space: normal; - padding: 10px 12px 12px 12px; - font-weight: normal; - line-height: 150%; - border-radius: 4px; - color: #fff; - font-size: 13px; - z-index: 999; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content, -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content a { - color: #fff; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and { - display: block; - color: rgba(0, 0, 0, 0.7); - font-weight: bold; - border-top: 1px solid #ddd; - margin: 18px 0; - position: relative; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and span { - position: absolute; - top: -10px; - background-color: #f9f9f9; - padding-right: 7px; - text-transform: uppercase; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition:first-child .wam-cleditor__operator-and { - display: none; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition > span { - display: inline-block; - vertical-align: top; -} -#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__condition-actions { - position: absolute; - right: 0; -} -#WBCR-AM .wam-cleditor .wam-cleditor__buttons-group { - margin-top: 20px; -} -/*# sourceMappingURL=assets-conditions.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-manager.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-manager.css deleted file mode 100644 index abb75a7b..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/assets-manager.css +++ /dev/null @@ -1,1215 +0,0 @@ -/** - * Assets manager styles - * @author Webcraftic - * @copyright Webcraftic 05.09.2019 - */ -html, -body { - overflow: hidden !important; -} -html { - line-height: 1.15 !important; - -webkit-text-size-adjust: 100% !important; - box-sizing: border-box !important; -} -body { - margin: 0 !important; - padding: 0 !important; - background: #FFF !important; -} -body, -body p { - font-family: Arial, "Helvetica Neue", sans-serif; -} -#WBCR-AM { - /** - * Reset styles - * @author Webcraftic - * @copyright Webcraftic 15.10.2018 - */ - /** - * Placeholderss - */ - /** - * Tabless - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ - /** - * Tooltips - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ - /** - * Float panel - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ - /** - * Tabs - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ - /** ---------------- PLUGINS TABS------------------------- */ - /** ---------------- /PLUGINS TABS------------------------ */ - /*.wam-help-hint { - //display: inline-block; - //width: 16px; - //height: 16px; - //line-height: 0 !important; - //padding: 0; - font-size: 11px; - font-style: normal; - text-align: left; - color: #fff; - background: #b4b5b5; - border-radius: 2px; - - img { - display: inline-block; - margin: 3px 0 0 4px; - } - }*/ -} -#WBCR-AM *, -#WBCR-AM *:before, -#WBCR-AM *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -#WBCR-AM, -#WBCR-AM h2, -#WBCR-AM h3, -#WBCR-AM h4, -#WBCR-AM h5, -#WBCR-AM h6, -#WBCR-AM p, -#WBCR-AM strong, -#WBCR-AM b, -#WBCR-AM span, -#WBCR-AM em, -#WBCR-AM i, -#WBCR-AM a, -#WBCR-AM div, -#WBCR-AM main, -#WBCR-AM section, -#WBCR-AM li, -#WBCR-AM button, -#WBCR-AM input[type="submit"], -#WBCR-AM input[type="reset"], -#WBCR-AM .wbcr-gnz-switch-premium { - font-family: Arial, "Helvetica Neue", sans-serif; - font-size: 14px; - font-style: normal; - font-weight: normal; - text-transform: none; - text-shadow: none; -} -#WBCR-AM h1 { - font-size: 2em; - margin: 0.67em 0; -} -#WBCR-AM hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} -#WBCR-AM pre { - font-family: monospace, monospace; - font-size: 1em; -} -#WBCR-AM a { - background-color: transparent; -} -#WBCR-AM abbr[title] { - border-bottom: none; - text-decoration: underline dotted; -} -#WBCR-AM b, -#WBCR-AM strong { - font-weight: bolder; -} -#WBCR-AM code, -#WBCR-AM kbd, -#WBCR-AM samp { - font-family: monospace, monospace; - font-size: 1em; -} -#WBCR-AM small { - font-size: 80%; -} -#WBCR-AM sub, -#WBCR-AM sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -#WBCR-AM sub { - bottom: -0.25em; -} -#WBCR-AM sup { - top: -0.5em; -} -#WBCR-AM img { - border-style: none; -} -#WBCR-AM button, -#WBCR-AM input, -#WBCR-AM optgroup, -#WBCR-AM select, -#WBCR-AM textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - height: auto; - width: auto; -} -#WBCR-AM button, -#WBCR-AM input, -#WBCR-AM optgroup, -#WBCR-AM select, -#WBCR-AM textarea, -#WBCR-AM button:hover, -#WBCR-AM input:hover, -#WBCR-AM optgroup:hover, -#WBCR-AM select:hover, -#WBCR-AM textarea:hover, -#WBCR-AM button:focus, -#WBCR-AM input:focus, -#WBCR-AM optgroup:focus, -#WBCR-AM select:focus, -#WBCR-AM textarea:focus { - -moz-box-shadow: none; - -ms-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; -} -#WBCR-AM button, -#WBCR-AM input { - overflow: visible; -} -#WBCR-AM button, -#WBCR-AM select { - text-transform: none; -} -#WBCR-AM button, -#WBCR-AM [type="button"], -#WBCR-AM [type="reset"], -#WBCR-AM [type="submit"] { - -webkit-appearance: button; -} -#WBCR-AM button::-moz-focus-inner, -#WBCR-AM [type="button"]::-moz-focus-inner, -#WBCR-AM [type="reset"]::-moz-focus-inner, -#WBCR-AM [type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} -#WBCR-AM button:-moz-focusring, -#WBCR-AM [type="button"]:-moz-focusring, -#WBCR-AM [type="reset"]:-moz-focusring, -#WBCR-AM [type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} -#WBCR-AM fieldset { - padding: 0.35em 0.75em 0.625em; -} -#WBCR-AM legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; -} -#WBCR-AM textarea { - overflow: auto; -} -#WBCR-AM [type="checkbox"], -#WBCR-AM [type="radio"] { - box-sizing: border-box; - padding: 0; -} -#WBCR-AM [type="number"]::-webkit-inner-spin-button, -#WBCR-AM [type="number"]::-webkit-outer-spin-button { - height: auto; -} -#WBCR-AM [type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; -} -#WBCR-AM [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -#WBCR-AM ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; -} -#WBCR-AM fieldset { - padding: 0.35em 0.75em 0.625em; -} -#WBCR-AM legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; -} -#WBCR-AM progress { - vertical-align: baseline; -} -#WBCR-AM textarea { - overflow: auto; -} -#WBCR-AM [type=checkbox], -#WBCR-AM [type=radio] { - box-sizing: border-box; - padding: 0; -} -#WBCR-AM [type=number]::-webkit-inner-spin-button, -#WBCR-AM [type=number]::-webkit-outer-spin-button { - height: auto; -} -#WBCR-AM [type=search] { - -webkit-appearance: textfield; - outline-offset: -2px; -} -#WBCR-AM [type=search]::-webkit-search-decoration { - -webkit-appearance: none; -} -#WBCR-AM ::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; -} -#WBCR-AM details { - display: block; -} -#WBCR-AM summary { - display: list-item; -} -#WBCR-AM template { - display: none; -} -#WBCR-AM [hidden] { - display: none; -} -#WBCR-AM table, -#WBCR-AM caption, -#WBCR-AM tbody, -#WBCR-AM tfoot, -#WBCR-AM thead, -#WBCR-AM tr, -#WBCR-AM th, -#WBCR-AM td { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: middle; - line-height: 1.2; -} -#WBCR-AM table { - table-layout: auto; - border-collapse: collapse; - border-spacing: 0; -} -#WBCR-AM span { - display: inline; - margin: 0; -} -#WBCR-AM input[type="text"]::-moz-placeholder { - color: #cccccc; -} -#WBCR-AM input[type="text"]::-webkit-input-placeholder, -#WBCR-AM textarea::-webkit-input-placeholder { - color: #cccccc; -} -#WBCR-AM input[type="text"]:-ms-input-placeholder, -#WBCR-AM textarea:-ms-input-placeholder { - color: #cccccc; -} -#WBCR-AM input[type="text"]::-ms-input-placeholder, -#WBCR-AM textarea::-ms-input-placeholder { - color: #cccccc; -} -#WBCR-AM input[type="text"]::placeholder, -#WBCR-AM textarea::placeholder { - color: #cccccc; -} -#WBCR-AM a { - text-decoration: none; - color: #007acc; - border: none; - background: none; -} -#WBCR-AM a:hover { - text-decoration: underline; - border: inherit; - background: inherit; -} -#WBCR-AM button, -#WBCR-AM [type=submit] { - color: black; - font-weight: 400; - padding: 0; - line-height: 1.5; -} -#WBCR-AM label { - color: white; - margin: 0; - font-weight: 400; -} -#WBCR-AM select, -#WBCR-AM [type=text] { - height: 32px; -} -#WBCR-AM .visually-hidden { - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - -webkit-clip-path: inset(100%); - clip-path: inset(100%); - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - white-space: nowrap; - border: 0; -} -#WBCR-AM .wam-table { - width: 100%; - box-sizing: border-box; - table-layout: fixed; - border-collapse: collapse; -} -#WBCR-AM .wam-table__handle-deps { - margin-top: 15px; -} -#WBCR-AM .wam-table__handle-deps span, -#WBCR-AM .wam-table__handle-deps a { - font-size: 11px !important; -} -#WBCR-AM .wam-table__handle-deps a { - color: red; - text-decoration: underline; -} -#WBCR-AM .wam-table tr:nth-child(2n) > td { - background: #f9f9f9; -} -#WBCR-AM .wam-table th { - padding: 12px 10px; - text-align: left; - color: #333; - background: #ECEDED; - box-shadow: none; -} -#WBCR-AM .wam-table th:not(:last-child) { - border-right: 2px solid #FFF; -} -#WBCR-AM .wam-table__th-actions { - width: 200px; -} -#WBCR-AM .wam-table__th-type { - width: 100px; -} -#WBCR-AM .wam-table__th-version { - width: 100px; -} -#WBCR-AM .wam-table__th-size { - width: 100px; -} -#WBCR-AM .wam-table__th-plugins-list, -#WBCR-AM .wam-table__td-plugins-list { - width: 350px; -} -#WBCR-AM .wam-table td { - padding: 17px 10px; - vertical-align: top; - text-align: left; - box-shadow: none; -} -#WBCR-AM .wam-table__td-handle { - word-break: break-word; -} -#WBCR-AM .wam-table__td-plugins-list { - padding: 0 !important; -} -#WBCR-AM .wam-table__th-plugins-settings, -#WBCR-AM .wam-table__td-plugins-settings { - width: 80%; - padding: 15px; - text-align: left; -} -#WBCR-AM .wam-table .js-wam-table__tr--disabled-section { - background: #fbf5f4; - opacity: 0.7; -} -#WBCR-AM .wam-table__asset-settings-conditions { - display: none; - background: #f3f3f3; - color: #7b7b7b; - font-size: 13px; - box-shadow: 0 2px 0 #d4d4d4; -} -#WBCR-AM .wam-table__asset-settings-conditions > td { - padding: 0 25px 15px 25px; -} -#WBCR-AM .wam-tooltip { - position: relative; -} -#WBCR-AM .wam-tooltip::before { - content: ""; - position: absolute; - z-index: 60; - left: 5px; - display: none; - width: 20px; - height: 20px; -} -#WBCR-AM .wam-tooltip::after { - content: attr(data-tooltip); - position: absolute; - z-index: 60; - left: 5px; - display: none; - min-width: 200px; - padding: 8px 15px; - color: #6d5506; - background: #FFCB1E; - font-size: 13px; - font-weight: normal; - line-height: 1.2; -} -#WBCR-AM .wam-tooltip-top::before { - bottom: 100%; - background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat; -} -#WBCR-AM .wam-tooltip-top::after { - bottom: 100%; - margin: 0 0 10px; - border-radius: 6px 6px 6px 0; -} -#WBCR-AM .wam-tooltip--bottom::before { - top: 100%; - background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat; -} -#WBCR-AM .wam-tooltip--bottom::after { - top: 100%; - margin: 15px 0 0; - border-radius: 0 6px 6px 6px; -} -#WBCR-AM .wam-tooltip:hover::before, -#WBCR-AM .wam-tooltip:hover::after { - display: block; -} -#WBCR-AM .wam-float-panel { - position: fixed; - z-index: 50; - top: 0; - right: 0; - left: 0; - width: 100%; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - height: 62px; - padding: 0 20px; - margin: 0; - color: #FFF; - background: #23282d; - font-size: 16px; - border-top: 2px solid #ffcb1e; -} -#WBCR-AM .wam-float-panel__premium { - position: relative; - display: block; - width: 20px; - height: 40px; - background: #ffcb1e; - margin-left: -30px; -} -#WBCR-AM .wam-float-panel__premium:hover { - cursor: pointer; -} -#WBCR-AM .wam-float-panel__premium .wam-tooltip { - position: relative; - right: -30px; - top: 8px; - font-size: 12px; - font-weight: bold; - font-style: normal; - color: #ffffff; - background: #f22714; - width: 45px; - text-align: center; - border-radius: 3px; - padding: 5px 0 5px 0; - line-height: 1.2; -} -#WBCR-AM .wam-float-panel__premium:after { - display: block; - content: ''; - position: absolute; - top: 1px; - left: 0; - width: 19px; - height: 38px; - background: #23282d; -} -#WBCR-AM .wam-float-panel__left, -#WBCR-AM .wam-float-panel__right { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - align-items: center; - -ms-flex-align: center; -} -#WBCR-AM .wam-float-panel__left { - min-width: 800px; - margin: 0 44px 0 0; -} -#WBCR-AM .wam-float-panel__logo { - width: 38px; - height: 32px; - margin: 0 44px 0 0; - 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="); -} -#WBCR-AM .wam-float-panel__data { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - align-items: center; - -ms-flex-align: center; - margin: 0 -22px; - padding: 0; - list-style: none; -} -#WBCR-AM .wam-float-panel__data:not(:last-child) { - margin-right: 22px; -} -#WBCR-AM .wam-float-panel__data-item { - margin: 0 22px; - color: #909090; - text-align: center; - vertical-align: top; - padding: 8px 0 8px; -} -#WBCR-AM .wam-float-panel__data-hidden { - display: none; - margin: 0 44px 0 0; -} -#WBCR-AM .wam-float-panel__data-hidden img { - vertical-align: middle; -} -#WBCR-AM .wam-float-panel__item_value { - font-size: 15px; - color: #d0d0d0; - background: #4c4c4c; - border-radius: 2px; - padding: 2px 5px; -} -#WBCR-AM .wam-float-panel__reset, -#WBCR-AM .wam-float-panel__save, -#WBCR-AM .wam-float-panel__reset.input[type="submit"], -#WBCR-AM .wam-float-panel__save.input[type="submit"] { - display: inline-block; - padding: 8px 15px 7px; - cursor: pointer; - transition: 0.1s; - vertical-align: middle; - text-transform: uppercase !important; - border: none; - border-radius: 2px; - font-size: 14px; - line-height: 1.5; - color: #222 !important; -} -#WBCR-AM .wam-float-panel__reset:hover, -#WBCR-AM .wam-float-panel__save:hover, -#WBCR-AM .wam-float-panel__reset:focus, -#WBCR-AM .wam-float-panel__save:focus { - outline: none; - text-decoration: none; -} -#WBCR-AM .wam-float-panel__reset:active, -#WBCR-AM .wam-float-panel__save:active { - -webkit-transform: translateY(2px); - transform: translateY(2px); -} -#WBCR-AM .wam-float-panel__reset, -#WBCR-AM .wam-float-panel__reset.input[type="submit"] { - margin: 0 10px 0 0; - padding-right: 30px; - padding-left: 30px; - background: #E1E5E9; - box-shadow: 0 4px #A8AEB3 !important; -} -#WBCR-AM .wam-float-panel__reset:hover, -#WBCR-AM .wam-float-panel__reset:focus { - background: #E7EAED !important; -} -#WBCR-AM .wam-float-panel__reset:active { - box-shadow: 0 2px #A8AEB3 !important; -} -#WBCR-AM .wam-float-panel__save, -#WBCR-AM .wam-float-panel__save.input[type="submit"] { - margin: 0 10px 0 0; - padding-right: 30px; - padding-left: 30px; - color: #222 !important; - background: #FFCB1E !important; - box-shadow: 0 4px #BF9A17 !important; -} -#WBCR-AM .wam-float-panel__save:hover, -#WBCR-AM .wam-float-panel__save:focus { - background: #FFD340 !important; - box-shadow: 0 4px #BF9A17 !important; -} -#WBCR-AM .wam-float-panel__save:active { - background: #FFD340 !important; - box-shadow: 0 2px #BF9A17 !important; -} -#WBCR-AM .wam-float-panel__save + div { - margin: 0; -} -#WBCR-AM .wam-float-panel__checkbox { - cursor: pointer; - font-size: 15px; - transform: none; -} -#WBCR-AM .wam-float-panel__checkbox-text, -#WBCR-AM .wam-float-panel__checkbox-text-premium { - position: relative; - padding: 0 0 0 26px; -} -#WBCR-AM .wam-float-panel__checkbox-text::before, -#WBCR-AM .wam-float-panel__checkbox-text-premium::before { - content: ""; - position: absolute; - top: -1px; - left: 0; - width: 20px; - height: 20px; - border-radius: 2px; - background: #ffcb1e; -} -#WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after, -#WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after { - content: ""; - position: absolute; - top: 5px; - left: 6px; - width: 8px; - height: 5px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - border: solid #444; - border-width: 0 0 2px 2px; -} -#WBCR-AM .wam-float-panel__checkbox-text-premium { - display: inline; - color: rgba(245, 245, 245, 0.3); -} -#WBCR-AM .wam-float-panel__checkbox-text-premium b { - display: inline-block; - font-size: 9px; - font-weight: 700; - color: #fff; - background: #f22714; - width: 25px; - padding: 3px 0; - text-align: center; - vertical-align: top; - border-radius: 3px; - line-height: 1.5; -} -#WBCR-AM .wam-float-panel__checkbox-text-premium::before { - background: rgba(245, 245, 245, 0.3); -} -#WBCR-AM .wam-float-panel__close, -#WBCR-AM .wam-float-panel__close:hover { - width: 36px; - height: 36px; - margin: 0 20px 0 20px; - cursor: pointer; - transition: 0.2s; - border: 4px solid #FFF; - border-radius: 50%; - 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; -} -#WBCR-AM .wam-float-panel__close:focus, -#WBCR-AM .wam-float-panel__close:hover:focus { - opacity: 0.5; - outline: none; -} -#WBCR-AM .wam-assets-type-tabs { - position: fixed; - top: 62px; - bottom: 0; - left: 0; - width: 75px; - margin: 0; - padding: 0; - list-style: none; - background: #F4F4F4; - box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2); -} -#WBCR-AM .wam-assets-type-tabs li { - margin: 0; - padding: 0; -} -#WBCR-AM .wam-assets-type-tabs__button { - position: relative; - display: block; - width: 100%; - height: 130px; - cursor: pointer; - border: none; - background: #ECEDED; - border-radius: 0; - box-shadow: none; - -moz-box-shadow: none; - -ms-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; -} -#WBCR-AM .wam-assets-type-tabs__button:hover, -#WBCR-AM .wam-assets-type-tabs__button:focus, -#WBCR-AM .wam-assets-type-tabs__button:after, -#WBCR-AM .wam-assets-type-tabs__button:before, -#WBCR-AM .wam-assets-type-tabs__button:after:hover, -#WBCR-AM .wam-assets-type-tabs__button:before:hover { - -moz-box-shadow: none; - -ms-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; -} -#WBCR-AM .wam-assets-type-tabs__button::after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - opacity: 0.55; -} -#WBCR-AM .wam-assets-type-tabs__button--misc::after { - 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%; -} -#WBCR-AM .wam-assets-type-tabs__button--theme::after { - 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%; -} -#WBCR-AM .wam-assets-type-tabs__button--plugins::after { - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAKSUlEQVRYhe2Yf4xU1RXHv+feeW8GdpBlQViGqouCmJgKRGpTawsEa2JSKVSspkZl1fqrsYXIaOtSFxQ2wFB+pMXaaiumqVWJYG2iiVGBRkNbi2BrWxOxrFBlV9idnZndmXk/7j394923+3bYWXY21v7Tk7y89+6959zPPe/cc++7tHPnTgwl77777pDlAGDbNmJSolgqIZFICNd1LhUk5iut5wGYCeZGAAkAZQCfENEREB0URPuJ6C0AvhACIMK6deuq9lNNYjVrACACAK4DsNx1nGZmvtSHCupOb57SzHPAvIwD5XcE0a9J0BMClBtN/2I0SspX1ziOewDATzXzpSHsEMCorGPm2UrrzZ7n/1EptWw0/dcKbROwxVfqRaX15ytBOXJVvodloQ4zX+T5/q4fPPDAz1sfeqjuvwU9hoBnAawcChbAYSnFVinETTEp50sp50khvhqT8kYpRIaI/jIUvNL6jrLj7GltfeiskYLQCCdinIBnACyJFjIAIvq9bVvbPNfbb9mWUr4CCQEwg5mDZ9OSmS/XWq/QWi8LwUM7QojXxiTiS9asfbj3TNAj8jQBG6LAxlt5Am4DsFgK+ToAxTygw1EDwQsLojctK3adFYt9m4CuqNe11ovKjrt9RDzVPH3kyPsgEHzfv9r3/Zei/QshjtmWtWxqKvVWfzkzwAylgixSLpehtQYJAcdx7rNisVlTU6nvEuAxgH998MElZcd5jplnRT1uW9b169vanhsOuqqnhRAgojqt9Zao14ioNxG3vxkFBgBBBNfzvua47lVBSAAkBDzPu7u3t3dzdzb7nRMnTjzqeZ7lOg6apk//ayIeX0JEXf22AXi+v7mlpaVhVNClYgnFUukWpfVFUU+A+XtTpjQehPEsmEFEKDvO4k86O/ecOnnyeadcXiClhOe6d+Xz+R3MDAJgW9ZRIaX2fR++7+OCGTPes6zYHQzosF9mPkcrddeooBNjEjEhxB3RMiJ6acbMmU/GLAsxy4Jl7lIIaK1n+UrVaeZkV1fXb/r6+jbnC4VHmZkIwNSpU1dOOvvsNs/zVF+xCGm+xvr1bbulEM9F41tp3bx6dUuiZmjXceew1pdEvMxx294opUT0EkKgVC7HJzY0bJna2JgGAF+pVKG39z5mJiGEk0qlVjRMnLjNdRzkcjk4jrPy1KlTj4FZAoCUciMBXsTbM7TSX6oZWgixkCPpmIC/uZ73RjQszKREb6Hws48++ujpiZMmbW5sbLw/amf8WWf9oi6Z3F4qFtGTy8H3vDsLhcLmU11dd3788cePAcD6trbDRPTn6Nxh5kXV2KruPXyl5kUXECnlqzErpolMqbnnc7nrcrlcMwMgIYrTpk1rBkAdHR0bAaBQKFxj2fbziURiv+e6d+bz+R1aa0FEcFz3aMRJr2ilvmwcBB1svmqDBnAhI7oA8EGlFEJoIoKv1ISTJ09uCD2UzWaXE4DUAPgGX6mm7q6up8eNG7crl8/fo7WWRIRkMrkqJuWP+3sjHKxYZc+rGZqZJw9asUgcF0IMWoZ7stlbXc87P6rXnc0uB8CpadNuBcAdHR0bfaVS2Z6e7wOAIHLG1tU9aMViW7TuTxog0DEACoA0APU1QxMwJvIMAH3MjL7eYJUVQsRz+fzNQ+l2Z7PNAMh4nDs6OjaFdclk8vEJEyZs0VoPXjWBPgAuB3scALBrhmagPOhzMY8FA77vA0TwHWeW67oXVtM3Hg9DBSF4sVRaXJdM7kokEn/giKdBGItgFxmKhyoynKdPAphqBgAQPico+NsgIiilpmitq+bSIcCpo6Njo+/753Z2dr44ZfLkb8UTiVfCtlrrcxCGBgAQ9dQOLeh9rfmS/v2v5rlM/IwOJyOzQ0DlJx4J+AYTegkeHNNzB/UPHK8dGnSQwNfCgDHzlUREHAgs2z5s2fZR13Wnn4Eb3dnscmYem0qlbgYzMfMHtm2/GB2w0vqqMFuZLe/BmqGFEHvD2W3+NGYz+DIp5Z9czwP7/myt1Ij+OIgI5XKZy45jj6+v31AsFqHNngUAVq9uuRhA/wpIAKQQr1dlq9qREAdB9I/Ir5NUvrqfAfie95WeXG63r9TkMwHHpDw2ob7+9uS4cTew1gWtVLCNjYjjuPeBOToJPwTRGzVDCyJPCvHL/kEAUFov7evray0UCruVUpP62wrRG4vF/h3R9S3L+uf48ePXNDQ0fFFIGdihaD4KpKXlwasB3BS+m5X1qba2tmI1tuEmImJW7Aml9T1gvsCAU6lY/JHSun+WSyEKyWTyeinlYQAXM/NYx3VPJOvq/h6zrKLyfbDWQ/6pd506db7v+78KOUwsnxiTiO+oxjU8NAgkKG9ZsbTrersjRwADwFLm6+rqbiAhXmZmxBOJE2CG63nQzODTF5B+6e7umlkql3dpzY2hbXP/4Zq1D38yHHT18JACQgjYtr0nJuXjYecxy0Is2JaqRDz+E0H0MkyMstanxetQ0tnZ+fVSsbRPaz27Yr/x7KZNm546k/6ITpji8fhKXS5P11pf6ZTLYQeyr1hsEUI0CUHbCfQWgvwNEOA4ZRARWDOEFNBKI5fPz3Zd914AzQBERcgcIODukfCMCJoE9Y1JxK8tlZ3dWutF0XMPrfWNrHEDiA4IoldBeJuYjgHoZfDY4PdJz1VKLVJaX0GAVWmfgQOJeHzxI+vWZT816ABc5Mck4kvKjrtNKXUbMOi4SzLzFYr5inAsBDgAbDZLs8n1g846zPPTAO59ZN267pGy1HQAKYTstW3rds/Da0rp9cw8vQK+vynMLjFaPgiY6DiYWzdlMk/WwhAaH7GwyQVSyt/GpPyCFKKFiN6rPK87XW9Q3REhxMOJePwyADUDA6M86uXg23ZJKdsEsIW1vpzBC7XmeQDOBXMDgv2wC6IsAceJ6G1BtBeEN1lzn6ichp8GdFPTGfdBoZQBvG6uz0RGdT79v5b/Q39WQqtWrWqtKHsKQDuABQDmA1g7hF4rgP0A9pn3yrb1CI6GzwOQA/CCsVnZNnz+XSaTOQwA6XR6OYD2TCazL51O1wNYDmA8gA8BvJDJZHoEgDWmYoG5HwXQZIytqTLYNaY+lGjbegB7AWw1NlsBHAIwZ4i24fPWiK1bAMw3wIeM/gLTZi8wEB47ASwEMDeiOFrZasCnG5thGvpGlfbtABak0+kFFeVzEDivOZPJLASwFEBPOp2eU5nymsw9h+CTjEaWIHBC+DfdA2DCMO3bEYRZKwbCDQAOm2tPOp3eZ+qaM5lMe+jpNQgWrUOm4c5RAgOBl0PgVgwsiHuH0VmLCm9nMpkeBF9qpbG3AsChdDrdVBkeYYhUPXMYgRxGEINAMKkXmrKqkslk2g1Df1IwA3gSwM5MJrMUQZjVA7glDI92DP40UVkQee4xAPsQjPwdU748ArYWwB4MZJgwNocFN3pHTR8hyxIzgO0YmPgfjiRP741c4SxfaSD2mKsdwcYeCNLbUjOQvQb+hUj9kBLxdr1532d05hg7KwBsy2QyO/8DenfAKWku08QAAAAASUVORK5CYII=") no-repeat 50%; -} -#WBCR-AM .wam-assets-type-tabs__button:hover, -#WBCR-AM .wam-assets-type-tabs__button:focus { - outline: none; - background: #E6E7E7; -} -#WBCR-AM .wam-assets-type-tabs__button:hover::after, -#WBCR-AM .wam-assets-type-tabs__button:focus::after { - opacity: 1; -} -#WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active { - background: #CACDCF; -} -#WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active::after { - opacity: 1; -} -#WBCR-AM .wam-assets-type-tab-content { - display: none; - padding: 20px 30px; -} -#WBCR-AM .wam-assets-type-tab-content.wam-assets-type-tab-content__active { - display: block !important; -} -#WBCR-AM .wam-nav-plugins { - padding: 0; - margin: 0; - list-style: none; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab { - position: relative; - text-align: left; - margin-bottom: 3px; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a { - display: block; - padding: 10px 20px; - background: #f5f5f5; - color: #222; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a strong, -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span { - display: block; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span { - font-size: 12px; - color: #2f2f2f; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab:hover a { - background: #efefef; - text-decoration: none; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a { - background: #e8e8e8; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--enable::after, -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after, -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after { - display: block; - content: ''; - position: absolute; - bottom: 10px; - right: 10px; - width: 10px; - height: 10px; - background: #8bc34a; - text-align: center; - font-size: 11px; - font-weight: 600; - border-radius: 4px; -} -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after, -#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after { - background: #d47b7b; -} -#WBCR-AM .wam-nav-plugins__tab-content { - display: none; -} -#WBCR-AM .wam-nav-plugins__tab-content.js-wam-nav-plugins__tab-content--active { - display: block !important; -} -#WBCR-AM .wam-help-hint { - display: inline-block; - position: relative; - background: url(../img/help.png) no-repeat 0 0 transparent; - height: 14px; - width: 13px; - cursor: help; - vertical-align: middle; - top: -1px; -} -#WBCR-AM .wam-asset-type { - display: inline-block; - padding: 5px 10px; - font-size: 13px; - text-transform: uppercase; - text-align: center; - border-radius: 3px; - vertical-align: middle; - margin-right: 15px; -} -#WBCR-AM .wam-asset-type--js { - background: #ffcb1e; - color: #403102; -} -#WBCR-AM .wam-asset-type--css { - background: #9757a5; - color: #ffffff; -} -#WBCR-AM .wam-colors--red { - color: red; -} -#WBCR-AM .wam-colors--grey { - color: grey; -} -#WBCR-AM .wam-button { - display: inline-block; - vertical-align: bottom; - padding: 5px 10px; - text-decoration: none; - box-shadow: none; - font-weight: 600; - border-radius: 3px; -} -#WBCR-AM .wam-button--small { - padding: 2px 8px; - font-size: 13px; -} -#WBCR-AM .wam-button.js-wam-button--hidden { - display: none; -} -#WBCR-AM .wam-button:hover { - cursor: pointer; - text-decoration: none; - box-shadow: none; -} -#WBCR-AM .wam-button:focus { - outline: none; - box-shadow: none; -} -#WBCR-AM .wam-button__icon { - height: 28px; - width: 28px; - padding: 5px; - line-height: 0; -} -#WBCR-AM .wam-button.js-wam-button__icon--cogs { - background: url('../img/cogs.png') center no-repeat; -} -#WBCR-AM .wam-button.js-wam-button__icon--close { - background: url('../img/close.png') center no-repeat; -} -#WBCR-AM .wam-button--default { - background-color: #eceded; - color: #222; - border: 1px solid #c3c3c3; -} -#WBCR-AM .wam-button--default:hover { - cursor: pointer; - background-color: #fff; - border: 1px solid #c3c3c3; -} -#WBCR-AM .wam-button--danger { - background-color: #fff; - color: #ff7063; - border: 1px solid #ff7063; -} -#WBCR-AM .wam-button--danger:hover { - background-color: #fff; - color: #222; - border: 1px solid #c3c3c3; -} -#WBCR-AM .wam-button--yellow { - background-color: #fff; - color: #a5820e; - border: 1px solid #ffcb1e; -} -#WBCR-AM .wam-button--yellow:hover { - background-color: #fff; - color: #222; - border: 1px solid #c3c3c3; -} -#WBCR-AM .wam-select { - display: inline-block; - vertical-align: bottom; - height: auto; - padding: 4px 10px; -} -#WBCR-AM .wam-select.js-wam-select--enable { - background: #efffde; - color: #4e6f28; - border: 1px solid #8bc34a; -} -#WBCR-AM .wam-select.js-wam-select--disable { - background: #ffdada; - border: 1px solid #efc3c3; - color: #774a4a; -} -#WBCR-AM .wam-select:focus { - outline: none; - box-shadow: none; -} -#WBCR-AM.wam-wrapper { - min-width: 1365px; - position: fixed; - z-index: 99999999; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: #FFF; - overflow-y: auto; -} -#WBCR-AM .wam-content { - display: block; - width: 100%; - margin: 0; - padding: 62px 0 0 75px; -} -#WBCR-AM .wam-info-section { - display: table; - padding: 0 30px 30px; - color: #5C5C5C; - font-size: 15px; - line-height: 21px; -} -#WBCR-AM .wam-info-section p { - font-size: 15px; - margin: 0; -} -#WBCR-AM .wam-info-section p:not(:last-child) { - margin-bottom: 25px; -} -#WBCR-AM .wam-info-section .wam-info-section__warning, -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium { - display: table-cell; - width: 49%; - text-align: left; - vertical-align: top; - padding: 20px; - background: #f9f9f9; - border-right: 2px solid #fff; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium { - background: #f9f9f9; - border-left: 2px solid #fff; - margin-left: 10px; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 { - position: relative; - margin: 0 0 20px; - padding: 10px 0; - text-align: left; - border-bottom: 2px solid #e2e2e2; - vertical-align: bottom; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 span { - display: block; - font-size: 17px; - font-weight: 600; - color: #e47558; - text-transform: uppercase; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul { - list-style: none; - margin-left: 5px; - margin-bottom: 20px; - padding: 0; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li { - margin-bottom: 5px; - font-weight: 600; - font-size: 15px; - color: #7d8871; - padding: 0; -} -#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li:before { - content: " "; - display: inline-block; - width: 0.4em; - height: 0.7em; - border: solid #8bc34a; - border-width: 0 0.2em 0.2em 0; - left: 0; - margin-right: 10px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} -#WBCR-AM .wam-plugin-settings { - padding-bottom: 10px; -} -#WBCR-AM .wam-plugin-settings__controls { - vertical-align: top; -} -#WBCR-AM .wam-plugin-settings .js-wam-plugin-settings__conditions { - display: none; - padding: 20px; -} -#WBCR-AM .wam-table__label-move-to-footer-premium { - display: block; - font-size: 12px; - color: #e0c1c1; - padding: 10px 0 0; -} -@media screen and (max-width: 1367px) { - #WBCR p { - font-size: 13px; - } - #WBCR .wam-content { - padding: 32px 0 0 75px; - } - #WBCR .wam-float-panel__left .wam-float-panel__item_value { - display: block; - } - #WBCR .wam-float-panel__right .wam-table__checkbox-text { - font-size: 13px; - } - #WBCR .wam-float-panel__right .wam-float-panel__reset, - #WBCR .wam-float-panel__right .wam-float-panel__save { - font-size: 12px; - } - #WBCR .wam-float-panel__right .wam-float-panel__checkbox-text { - font-size: 12px; - display: block; - line-height: 1.5; - } - #WBCR .wam-float-panel__right .wam-float-panel__close { - width: 30px; - height: 30px; - margin: 0 10px 0 15px; - border: 3px solid #FFF; - } - #WBCR .wam-info-section { - padding: 0; - } - #WBCR .wam-info-section, - #WBCR .wam-info-section p { - font-size: 13px; - } - #WBCR .wam-info-section .wam-info-section__warning { - padding: 20px 20px 30px; - } - #WBCR .wbcr-gnz-button__pro { - font-size: 12px; - } - #WBCR .wam-table { - margin: 0; - } - #WBCR .wam-table th { - font-size: 13px; - } - #WBCR .wam-table .wam-table__item .wam-table__item-name { - font-size: 14px; - } - #WBCR .wam-table .wam-table__item .wam-table__item-author, - #WBCR .wam-table .wam-table__item .wam-table__item-version, - #WBCR .wam-table .wam-table__item .wbcr-use-by-comment, - #WBCR .wam-table .wam-table__item .wam-table__item-author a, - #WBCR .wam-table .wam-table__item .wam-table__item-version a, - #WBCR .wam-table .wam-table__item .wbcr-use-by-comment a { - font-size: 12px; - } - #WBCR .wam-table .wam-table__script-name { - font-size: 14px; - } - #WBCR .wam-table .wam-table__script-name b { - font-size: 11px; - font-weight: lighter; - padding: 3px 7px; - margin-right: 8px; - } - #WBCR .wam-table .wam-table__script-path a { - font-size: 11px; - } - #WBCR .wam-table .wam-table__column_switch { - width: 10%; - } - #WBCR .wam-table .wam-table__column_switch .wam-table__th-external-plugin, - #WBCR .wam-table .wam-table__column_switch em { - font-size: 10px; - } - #WBCR .wam-table .wam-table__column_switch b { - font-size: 12px; - } - #WBCR .wam-table .wam-table__column_condition { - width: 35%; - } -} -@media screen and (max-width: 1600px) { - #WBCR .wam-float-panel__data-main { - display: none; - } - #WBCR .wam-float-panel__data-hidden { - display: block; - } -} -/*# sourceMappingURL=assets-manager.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/float-panel.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/float-panel.css deleted file mode 100644 index b1502fbe..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/float-panel.css +++ /dev/null @@ -1,252 +0,0 @@ -/** - * Float panel - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ -.wam-float-panel { - position: fixed; - z-index: 50; - top: 30px; - right: 0; - left: 0; - width: 100%; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -ms-flex-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - height: 62px; - padding: 0 20px; - margin: 0; - color: #FFF; - background: #23282d; - font-size: 16px; - border-top: 2px solid #ffcb1e; -} -.wam-float-panel__premium { - position: relative; - display: block; - width: 20px; - height: 40px; - background: #ffcb1e; - margin-left: -30px; -} -.wam-float-panel__premium:hover { - cursor: pointer; -} -.wam-float-panel__premium .wam-tooltip { - position: relative; - right: -30px; - top: 8px; - font-size: 12px; - font-weight: bold; - font-style: normal; - color: #ffffff; - background: #f22714; - width: 45px; - text-align: center; - border-radius: 3px; - padding: 5px 0 5px 0; - line-height: 1.2; -} -.wam-float-panel__premium:after { - display: block; - content: ''; - position: absolute; - top: 1px; - left: 0; - width: 19px; - height: 38px; - background: #23282d; -} -.wam-float-panel__left, -.wam-float-panel__right { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - align-items: center; - -ms-flex-align: center; -} -.wam-float-panel__left { - min-width: 800px; - margin: 0 44px 0 0; -} -.wam-float-panel__logo { - width: 38px; - height: 32px; - margin: 0 44px 0 0; - 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="); -} -.wam-float-panel__data { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - align-items: center; - -ms-flex-align: center; - margin: 0 -22px; - padding: 0; - list-style: none; -} -.wam-float-panel__data:not(:last-child) { - margin-right: 22px; -} -.wam-float-panel__data-item { - margin: 0 22px; - color: #909090; - text-align: center; - vertical-align: top; - padding: 8px 0 8px; -} -.wam-float-panel__data-hidden { - display: none; - margin: 0 44px 0 0; -} -.wam-float-panel__data-hidden img { - vertical-align: middle; -} -.wam-float-panel__item_value { - font-size: 15px; - color: #d0d0d0; - background: #4c4c4c; - border-radius: 2px; - padding: 2px 5px; -} -.wam-float-panel__reset, -.wam-float-panel__save, -.wam-float-panel__reset.input[type="submit"], -.wam-float-panel__save.input[type="submit"] { - display: inline-block; - padding: 8px 15px 7px; - cursor: pointer; - transition: 0.1s; - vertical-align: middle; - text-transform: uppercase !important; - border: none; - border-radius: 2px; - font-size: 14px; - line-height: 1.5; - color: #222 !important; -} -.wam-float-panel__reset:hover, -.wam-float-panel__save:hover, -.wam-float-panel__reset:focus, -.wam-float-panel__save:focus { - outline: none; - text-decoration: none; -} -.wam-float-panel__reset:active, -.wam-float-panel__save:active { - -webkit-transform: translateY(2px); - transform: translateY(2px); -} -.wam-float-panel__reset, -.wam-float-panel__reset.input[type="submit"] { - margin: 0 10px 0 0; - padding-right: 30px; - padding-left: 30px; - background: #E1E5E9; - box-shadow: 0 4px #A8AEB3 !important; -} -.wam-float-panel__reset:hover, -.wam-float-panel__reset:focus { - background: #E7EAED !important; -} -.wam-float-panel__reset:active { - box-shadow: 0 2px #A8AEB3 !important; -} -.wam-float-panel__save, -.wam-float-panel__save.input[type="submit"] { - margin: 0 10px 0 0; - padding-right: 30px; - padding-left: 30px; - color: #222 !important; - background: #FFCB1E !important; - box-shadow: 0 4px #BF9A17 !important; -} -.wam-float-panel__save:hover, -.wam-float-panel__save:focus { - background: #FFD340 !important; - box-shadow: 0 4px #BF9A17 !important; -} -.wam-float-panel__save:active { - background: #FFD340 !important; - box-shadow: 0 2px #BF9A17 !important; -} -.wam-float-panel__save + div { - margin: 0; -} -.wam-float-panel__checkbox { - cursor: pointer; - font-size: 15px; - transform: none; -} -.wam-float-panel__checkbox-text, -.wam-float-panel__checkbox-text-premium { - position: relative; - padding: 0 0 0 26px; -} -.wam-float-panel__checkbox-text::before, -.wam-float-panel__checkbox-text-premium::before { - content: ""; - position: absolute; - top: -1px; - left: 0; - width: 20px; - height: 20px; - border-radius: 2px; - background: #ffcb1e; -} -.wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after, -.wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after { - content: ""; - position: absolute; - top: 5px; - left: 6px; - width: 8px; - height: 5px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - border: solid #444; - border-width: 0 0 2px 2px; -} -.wam-float-panel__checkbox-text-premium { - display: inline; - color: rgba(245, 245, 245, 0.3); -} -.wam-float-panel__checkbox-text-premium b { - display: inline-block; - font-size: 9px; - font-weight: 700; - color: #fff; - background: #f22714; - width: 25px; - padding: 3px 0; - text-align: center; - vertical-align: top; - border-radius: 3px; - line-height: 1.5; -} -.wam-float-panel__checkbox-text-premium::before { - background: rgba(245, 245, 245, 0.3); -} -.wam-float-panel__close, -.wam-float-panel__close:hover { - width: 36px; - height: 36px; - margin: 0 20px 0 20px; - cursor: pointer; - transition: 0.2s; - border: 4px solid #FFF; - border-radius: 50%; - 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; -} -.wam-float-panel__close:focus, -.wam-float-panel__close:hover:focus { - opacity: 0.5; - outline: none; -} -/*# sourceMappingURL=float-panel.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/reset.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/reset.css deleted file mode 100644 index e1c8db3f..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/reset.css +++ /dev/null @@ -1,251 +0,0 @@ -/** - * Reset styles - * @author Webcraftic - * @copyright Webcraftic 15.10.2018 - */ -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -h2, -h3, -h4, -h5, -h6, -p, -strong, -b, -span, -em, -i, -a, -div, -main, -section, -li, -button, -input[type="submit"], -input[type="reset"], -.wbcr-gnz-switch-premium { - font-family: Arial, "Helvetica Neue", sans-serif !important; - font-size: 14px; - font-style: normal; - font-weight: normal; - text-transform: none; - text-shadow: none; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} -pre { - font-family: monospace, monospace; - font-size: 1em; -} -a { - background-color: transparent; -} -abbr[title] { - border-bottom: none; - text-decoration: underline dotted; -} -b, -strong { - font-weight: bolder; -} -code, -kbd, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sub { - bottom: -0.25em; -} -sup { - top: -0.5em; -} -img { - border-style: none; -} -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - height: auto; - width: auto; -} -button, -input, -optgroup, -select, -textarea, -button:hover, -input:hover, -optgroup:hover, -select:hover, -textarea:hover, -button:focus, -input:focus, -optgroup:focus, -select:focus, -textarea:focus { - -moz-box-shadow: none; - -ms-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; -} -button, -input { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} -fieldset { - padding: 0.35em 0.75em 0.625em; -} -legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; -} -textarea { - overflow: auto; -} -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; - padding: 0; -} -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; -} -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; -} -fieldset { - padding: 0.35em 0.75em 0.625em; -} -legend { - box-sizing: border-box; - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; -} -progress { - vertical-align: baseline; -} -textarea { - overflow: auto; -} -[type=checkbox], -[type=radio] { - box-sizing: border-box; - padding: 0; -} -[type=number]::-webkit-inner-spin-button, -[type=number]::-webkit-outer-spin-button { - height: auto; -} -[type=search] { - -webkit-appearance: textfield; - outline-offset: -2px; -} -[type=search]::-webkit-search-decoration { - -webkit-appearance: none; -} -::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit; -} -details { - display: block; -} -summary { - display: list-item; -} -template { - display: none; -} -[hidden] { - display: none; -} -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: middle; - line-height: 1.2; -} -table { - table-layout: auto; - border-collapse: collapse; - border-spacing: 0; -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tables.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tables.css deleted file mode 100644 index d19ac100..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tables.css +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Tabless - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ -.wam-table { - width: 100%; - box-sizing: border-box; - table-layout: fixed; - border-collapse: collapse; -} -.wam-table__handle-deps { - margin-top: 15px; -} -.wam-table__handle-deps span, -.wam-table__handle-deps a { - font-size: 11px !important; -} -.wam-table__handle-deps a { - color: red; - text-decoration: underline; -} -.wam-table tr:nth-child(2n) > td { - background: #f9f9f9; -} -.wam-table th { - padding: 12px 10px; - text-align: left; - color: #333; - background: #ECEDED; - box-shadow: none; -} -.wam-table th:not(:last-child) { - border-right: 2px solid #FFF; -} -.wam-table__th-actions { - width: 200px; -} -.wam-table__th-type { - width: 100px; -} -.wam-table__th-version { - width: 100px; -} -.wam-table__th-size { - width: 100px; -} -.wam-table__th-plugins-list, -.wam-table__td-plugins-list { - width: 350px; -} -.wam-table td { - padding: 17px 10px; - vertical-align: top; - text-align: left; - box-shadow: none; -} -.wam-table__td-handle { - word-break: break-word; -} -.wam-table__td-plugins-list { - padding: 0 !important; -} -.wam-table__th-plugins-settings, -.wam-table__td-plugins-settings { - width: 80%; - padding: 15px; - text-align: left; -} -.wam-table .js-wam-table__tr--disabled-section { - background: #fbf5f4; - opacity: 0.7; -} -.wam-table__asset-settings-conditions { - display: none; - background: #f3f3f3; - color: #7b7b7b; - font-size: 13px; - box-shadow: 0 2px 0 #d4d4d4; -} -.wam-table__asset-settings-conditions > td { - padding: 0 25px 15px 25px; -} -/*# sourceMappingURL=tables.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tooltip.css b/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tooltip.css deleted file mode 100644 index fdc94598..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/css/tooltip.css +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Tooltip - - * @author Alex Kovalev - * @copyright Webcraftic 26.08.2019 - */ -.wam-tooltip { - position: relative; -} -.wam-tooltip::before { - content: ""; - position: absolute; - z-index: 60; - left: 5px; - display: none; - width: 20px; - height: 20px; -} -.wam-tooltip::after { - content: attr(data-tooltip); - position: absolute; - z-index: 60; - left: 5px; - display: none; - min-width: 200px; - padding: 8px 15px; - color: #6d5506; - background: #FFCB1E; - font-size: 13px; - font-weight: normal; - line-height: 1.2; -} -.wam-tooltip-top::before { - bottom: 100%; - background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat; -} -.wam-tooltip-top::after { - bottom: 100%; - margin: 0 0 10px; - border-radius: 6px 6px 6px 0; -} -.wam-tooltip--bottom::before { - top: 100%; - background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat; -} -.wam-tooltip--bottom::after { - top: 100%; - margin: 15px 0 0; - border-radius: 0 6px 6px 6px; -} -.wam-tooltip:hover::before, -.wam-tooltip:hover::after { - display: block; -} -/*# sourceMappingURL=tooltip.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cancel.png b/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cancel.png deleted file mode 100644 index 6447f3d3..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cancel.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/close.png b/wp-content/plugins/!clearfy/components/assets-manager/assets/img/close.png deleted file mode 100644 index 03e2dcd6..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/close.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cogs.png b/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cogs.png deleted file mode 100644 index 95570d9f..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/cogs.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/help.png b/wp-content/plugins/!clearfy/components/assets-manager/assets/img/help.png deleted file mode 100644 index a201029c..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/help.png and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/info.svg b/wp-content/plugins/!clearfy/components/assets-manager/assets/img/info.svg deleted file mode 100644 index 3e9cd493..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/img/info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-jquery-migrate.min.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-jquery-migrate.min.js deleted file mode 100644 index 2e84fcb9..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-jquery-migrate.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery Migrate v1.4.1 | (c) jQuery Foundation and other contributors | jquery.org/license */ -"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("",{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*)([^>]*)$/;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=0&&c=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;d0&&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+~]|"+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.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=0;)a.push(d);return a}),gt:ma(function(a,b,c){for(var d=c<0?c+b:c;++d1?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-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}];i1&&ra(m),i>1&&pa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,i0,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.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="",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;b1?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-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-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);b0||(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 -;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
      a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",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,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:l.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]};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=/"!==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-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),ua=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,va=/\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;d1&&"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")},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")).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="
      t
      ",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=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({ -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;g1)},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
      a",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-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("
      ").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") -;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}); -jQuery.noConflict(); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-confirm.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-confirm.js deleted file mode 100644 index 2256433c..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-confirm.js +++ /dev/null @@ -1,790 +0,0 @@ -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; }; - -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; }; - -/* src/PNotifyConfirm.html generated by Svelte v2.16.1 */ -var WamPnotifyConfirm = function (PNotify) { - "use strict"; - - PNotify = PNotify && PNotify.__esModule ? PNotify["default"] : PNotify; - - function data() { - return _extends({ - '_notice': null, // The PNotify notice. - '_options': {} // The options for the notice. - }, PNotify.modules.Confirm.defaults); - }; - - var methods = { - initModule: function initModule(options) { - this.set(options); - }, - afterOpen: function afterOpen() { - if (this.get().prompt && this.get().focus !== false) { - if (this.get().promptMultiLine) { - this.refs.promptMulti.focus(); - } else { - this.refs.promptSingle.focus(); - } - } else if (this.get().confirm && (this.get().focus === true || this.get().focus === null && this.get()._options.stack.modal)) { - var buttons = this.get().buttons; - if (buttons.length) { - var i = buttons.length - 1; - while (i >= 0) { - if (buttons[i].promptTrigger) { - break; - } - i--; - } - this.refs.buttons.children[i].focus(); - } - } - }, - handleClick: function handleClick(button, event) { - if (button.click) { - button.click(this.get()._notice, this.get().prompt ? this.get().promptValue : null, event); - } - }, - handleKeyPress: function handleKeyPress(event) { - if (event.keyCode === 13 && !event.shiftKey) { - event.preventDefault(); - - var _get = this.get(), - buttons = _get.buttons; - - for (var i = 0; i < buttons.length; i++) { - if (buttons[i].promptTrigger && buttons[i].click) { - buttons[i].click(this.get()._notice, this.get().prompt ? this.get().promptValue : null, event); - } - } - } - } - }; - - function oncreate() { - this.fire('init', { module: this }); - }; - - function setup(Component) { - Component.key = 'Confirm'; - - Component.defaults = { - // Make a confirmation box. - confirm: false, - // Make a prompt. - prompt: false, - // Classes to add to the input element of the prompt. - promptClass: '', - // The value of the prompt. - promptValue: '', - // Whether the prompt should accept multiple lines of text. - promptMultiLine: false, - // For confirmation boxes, true means the first button or the button with promptTrigger will be focused, and null means focus will change only for modal notices. For prompts, true or null means focus the prompt. When false, focus will not change. - focus: null, - // Where to align the buttons. (flex-start, center, flex-end, space-around, space-between) - align: 'flex-end', - // The buttons to display, and their callbacks. - buttons: [{ - text: 'Ok', - textTrusted: false, - addClass: '', - primary: true, - // Whether to trigger this button when the user hits enter in a single line prompt. Also, focus the button if it is a modal prompt. - promptTrigger: true, - click: function click(notice, value) { - notice.close(); - notice.fire('pnotify.confirm', { notice: notice, value: value }); - } - }, { - text: 'Cancel', - textTrusted: false, - addClass: '', - click: function click(notice) { - notice.close(); - notice.fire('pnotify.cancel', { notice: notice }); - } - }] - }; - - // Register the module with PNotify. - PNotify.modules.Confirm = Component; - // Append this module to the container. - PNotify.modulesAppendContainer.push(Component); - - // Add button styles to styling objects. - _extends(PNotify.styling.brighttheme, { - actionBar: '', - promptBar: '', - btn: '', - btnPrimary: 'brighttheme-primary', - input: '' - }); - _extends(PNotify.styling.bootstrap3, { - actionBar: 'ui-pnotify-confirm-ml', - promptBar: 'ui-pnotify-confirm-ml', - btn: 'btn btn-default ui-pnotify-confirm-mx-1', - btnPrimary: 'btn btn-default ui-pnotify-confirm-mx-1 btn-primary', - input: 'form-control' - }); - _extends(PNotify.styling.bootstrap4, { - actionBar: 'ui-pnotify-confirm-ml', - promptBar: 'ui-pnotify-confirm-ml', - btn: 'btn btn-secondary mx-1', - btnPrimary: 'btn btn-primary mx-1', - input: 'form-control' - }); - if (!PNotify.styling.material) { - PNotify.styling.material = {}; - } - _extends(PNotify.styling.material, { - actionBar: '', - promptBar: '', - btn: '', - btnPrimary: 'ui-pnotify-material-primary', - input: '' - }); - }; - - function add_css() { - var style = createElement("style"); - style.id = 'svelte-1y9suua-style'; - style.textContent = ".ui-pnotify-action-bar.svelte-1y9suua,.ui-pnotify-prompt-bar.svelte-1y9suua{margin-top:5px;clear:both}.ui-pnotify-action-bar.svelte-1y9suua{display:flex;flex-wrap:wrap;justify-content:flex-end}.ui-pnotify-prompt-input.svelte-1y9suua{margin-bottom:5px;display:block;width:100%}.ui-pnotify-confirm-mx-1.svelte-1y9suua{margin:0 5px}.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-confirm-ml.svelte-1y9suua{margin-left:24px}[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-confirm-ml.svelte-1y9suua{margin-right:24px;margin-left:0}"; - append(document.head, style); - } - - function click_handler(event) { - var _svelte = this._svelte, - component = _svelte.component, - ctx = _svelte.ctx; - - - component.handleClick(ctx.button, event); - } - - function get_each_context(ctx, list, i) { - var child_ctx = Object.create(ctx); - child_ctx.button = list[i]; - return child_ctx; - } - - function create_main_fragment(component, ctx) { - var if_block_anchor; - - var if_block = (ctx.confirm || ctx.prompt) && create_if_block(component, ctx); - - return { - c: function c() { - if (if_block) if_block.c(); - if_block_anchor = createComment(); - }, - m: function m(target, anchor) { - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - }, - p: function p(changed, ctx) { - if (ctx.confirm || ctx.prompt) { - if (if_block) { - if_block.p(changed, ctx); - } else { - if_block = create_if_block(component, ctx); - if_block.c(); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - }, - d: function d(detach) { - if (if_block) if_block.d(detach); - if (detach) { - detachNode(if_block_anchor); - } - } - }; - } - - // (1:0) {#if confirm || prompt} - function create_if_block(component, ctx) { - var div1, text, div0, div0_class_value; - - var if_block = ctx.prompt && create_if_block_2(component, ctx); - - var each_value = ctx.buttons; - - var each_blocks = []; - - for (var i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block(component, get_each_context(ctx, each_value, i)); - } - - return { - c: function c() { - div1 = createElement("div"); - if (if_block) if_block.c(); - text = createText("\n "); - div0 = createElement("div"); - - for (var i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - div0.className = div0_class_value = "\n ui-pnotify-action-bar\n " + (ctx._notice.get()._styles.actionBar ? ctx._notice.get()._styles.actionBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua"; - setStyle(div0, "justify-content", ctx.align); - div1.className = "ui-pnotify-confirm"; - }, - m: function m(target, anchor) { - insert(target, div1, anchor); - if (if_block) if_block.m(div1, null); - append(div1, text); - append(div1, div0); - - for (var i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(div0, null); - } - - component.refs.buttons = div0; - }, - p: function p(changed, ctx) { - if (ctx.prompt) { - if (if_block) { - if_block.p(changed, ctx); - } else { - if_block = create_if_block_2(component, ctx); - if_block.c(); - if_block.m(div1, text); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - - if (changed.buttons || changed._notice) { - each_value = ctx.buttons; - - for (var i = 0; i < each_value.length; i += 1) { - var child_ctx = get_each_context(ctx, each_value, i); - - if (each_blocks[i]) { - each_blocks[i].p(changed, child_ctx); - } else { - each_blocks[i] = create_each_block(component, child_ctx); - each_blocks[i].c(); - each_blocks[i].m(div0, null); - } - } - - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - - if (changed._notice && div0_class_value !== (div0_class_value = "\n ui-pnotify-action-bar\n " + (ctx._notice.get()._styles.actionBar ? ctx._notice.get()._styles.actionBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua")) { - div0.className = div0_class_value; - } - - if (changed.align) { - setStyle(div0, "justify-content", ctx.align); - } - }, - d: function d(detach) { - if (detach) { - detachNode(div1); - } - - if (if_block) if_block.d(); - - destroyEach(each_blocks, detach); - - if (component.refs.buttons === div0) component.refs.buttons = null; - } - }; - } - - // (3:4) {#if prompt} - function create_if_block_2(component, ctx) { - var div, div_class_value; - - function select_block_type(ctx) { - if (ctx.promptMultiLine) return create_if_block_3; - return create_else_block_1; - } - - var current_block_type = select_block_type(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - div = createElement("div"); - if_block.c(); - div.className = div_class_value = "\n ui-pnotify-prompt-bar\n " + (ctx._notice.get()._styles.promptBar ? ctx._notice.get()._styles.promptBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua"; - }, - m: function m(target, anchor) { - insert(target, div, anchor); - if_block.m(div, null); - }, - p: function p(changed, ctx) { - if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(div, null); - } - - if (changed._notice && div_class_value !== (div_class_value = "\n ui-pnotify-prompt-bar\n " + (ctx._notice.get()._styles.promptBar ? ctx._notice.get()._styles.promptBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua")) { - div.className = div_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div); - } - - if_block.d(); - } - }; - } - - // (21:8) {:else} - function create_else_block_1(component, ctx) { - var input, - input_updating = false, - input_class_value; - - function input_input_handler() { - input_updating = true; - component.set({ promptValue: input.value }); - input_updating = false; - } - - function keypress_handler(event) { - component.handleKeyPress(event); - } - - return { - c: function c() { - input = createElement("input"); - addListener(input, "input", input_input_handler); - addListener(input, "keypress", keypress_handler); - setAttribute(input, "type", "text"); - input.className = input_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua"; - }, - m: function m(target, anchor) { - insert(target, input, anchor); - component.refs.promptSingle = input; - - input.value = ctx.promptValue; - }, - p: function p(changed, ctx) { - if (!input_updating && changed.promptValue) input.value = ctx.promptValue; - if ((changed._notice || changed.promptClass) && input_class_value !== (input_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua")) { - input.className = input_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(input); - } - - removeListener(input, "input", input_input_handler); - removeListener(input, "keypress", keypress_handler); - if (component.refs.promptSingle === input) component.refs.promptSingle = null; - } - }; - } - - // (10:8) {#if promptMultiLine} - function create_if_block_3(component, ctx) { - var textarea, - textarea_updating = false, - textarea_class_value; - - function textarea_input_handler() { - textarea_updating = true; - component.set({ promptValue: textarea.value }); - textarea_updating = false; - } - - function keypress_handler(event) { - component.handleKeyPress(event); - } - - return { - c: function c() { - textarea = createElement("textarea"); - addListener(textarea, "input", textarea_input_handler); - addListener(textarea, "keypress", keypress_handler); - textarea.rows = "5"; - textarea.className = textarea_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua"; - }, - m: function m(target, anchor) { - insert(target, textarea, anchor); - component.refs.promptMulti = textarea; - - textarea.value = ctx.promptValue; - }, - p: function p(changed, ctx) { - if (!textarea_updating && changed.promptValue) textarea.value = ctx.promptValue; - if ((changed._notice || changed.promptClass) && textarea_class_value !== (textarea_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua")) { - textarea.className = textarea_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(textarea); - } - - removeListener(textarea, "input", textarea_input_handler); - removeListener(textarea, "keypress", keypress_handler); - if (component.refs.promptMulti === textarea) component.refs.promptMulti = null; - } - }; - } - - // (51:57) {:else} - function create_else_block(component, ctx) { - var text_value = ctx.button.text, - text; - - return { - c: function c() { - text = createText(text_value); - }, - m: function m(target, anchor) { - insert(target, text, anchor); - }, - p: function p(changed, ctx) { - if (changed.buttons && text_value !== (text_value = ctx.button.text)) { - setData(text, text_value); - } - }, - d: function d(detach) { - if (detach) { - detachNode(text); - } - } - }; - } - - // (51:14) {#if button.textTrusted} - function create_if_block_1(component, ctx) { - var raw_value = ctx.button.text, - raw_before, - raw_after; - - return { - c: function c() { - raw_before = createElement('noscript'); - raw_after = createElement('noscript'); - }, - m: function m(target, anchor) { - insert(target, raw_before, anchor); - raw_before.insertAdjacentHTML("afterend", raw_value); - insert(target, raw_after, anchor); - }, - p: function p(changed, ctx) { - if (changed.buttons && raw_value !== (raw_value = ctx.button.text)) { - detachBetween(raw_before, raw_after); - raw_before.insertAdjacentHTML("afterend", raw_value); - } - }, - d: function d(detach) { - if (detach) { - detachBetween(raw_before, raw_after); - detachNode(raw_before); - detachNode(raw_after); - } - } - }; - } - - // (43:6) {#each buttons as button} - function create_each_block(component, ctx) { - var button, button_class_value; - - function select_block_type_1(ctx) { - if (ctx.button.textTrusted) return create_if_block_1; - return create_else_block; - } - - var current_block_type = select_block_type_1(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - button = createElement("button"); - if_block.c(); - button._svelte = { component: component, ctx: ctx }; - - addListener(button, "click", click_handler); - button.type = "button"; - button.className = button_class_value = "\n ui-pnotify-action-button\n " + (ctx.button.primary ? ctx._notice.get()._styles.btnPrimary ? ctx._notice.get()._styles.btnPrimary : '' : ctx._notice.get()._styles.btn ? ctx._notice.get()._styles.btn : '') + "\n " + (ctx.button.addClass ? ctx.button.addClass : '') + "\n " + " svelte-1y9suua"; - }, - m: function m(target, anchor) { - insert(target, button, anchor); - if_block.m(button, null); - }, - p: function p(changed, _ctx) { - ctx = _ctx; - if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(button, null); - } - - button._svelte.ctx = ctx; - if ((changed.buttons || changed._notice) && button_class_value !== (button_class_value = "\n ui-pnotify-action-button\n " + (ctx.button.primary ? ctx._notice.get()._styles.btnPrimary ? ctx._notice.get()._styles.btnPrimary : '' : ctx._notice.get()._styles.btn ? ctx._notice.get()._styles.btn : '') + "\n " + (ctx.button.addClass ? ctx.button.addClass : '') + "\n " + " svelte-1y9suua")) { - button.className = button_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(button); - } - - if_block.d(); - removeListener(button, "click", click_handler); - } - }; - } - - function PNotifyConfirm(options) { - var _this = this; - - init(this, options); - this.refs = {}; - this._state = assign(data(), options.data); - this._intro = true; - - if (!document.getElementById("svelte-1y9suua-style")) add_css(); - - this._fragment = create_main_fragment(this, this._state); - - this.root._oncreate.push(function () { - oncreate.call(_this); - _this.fire("update", { changed: assignTrue({}, _this._state), current: _this._state }); - }); - - if (options.target) { - this._fragment.c(); - this._mount(options.target, options.anchor); - - flush(this); - } - } - - assign(PNotifyConfirm.prototype, { - destroy: destroy, - get: get, - fire: fire, - on: on, - set: set, - _set: _set, - _stage: _stage, - _mount: _mount, - _differs: _differs - }); - assign(PNotifyConfirm.prototype, methods); - - PNotifyConfirm.prototype._recompute = noop; - - setup(PNotifyConfirm); - - function createElement(name) { - return document.createElement(name); - } - - function append(target, node) { - target.appendChild(node); - } - - function createComment() { - return document.createComment(''); - } - - function insert(target, node, anchor) { - target.insertBefore(node, anchor); - } - - function detachNode(node) { - node.parentNode.removeChild(node); - } - - function createText(data) { - return document.createTextNode(data); - } - - function setStyle(node, key, value) { - node.style.setProperty(key, value); - } - - function destroyEach(iterations, detach) { - for (var i = 0; i < iterations.length; i += 1) { - if (iterations[i]) iterations[i].d(detach); - } - } - - function addListener(node, event, handler, options) { - node.addEventListener(event, handler, options); - } - - function setAttribute(node, attribute, value) { - if (value == null) node.removeAttribute(attribute);else node.setAttribute(attribute, value); - } - - function removeListener(node, event, handler, options) { - node.removeEventListener(event, handler, options); - } - - function setData(text, data) { - text.data = '' + data; - } - - function detachBetween(before, after) { - while (before.nextSibling && before.nextSibling !== after) { - before.parentNode.removeChild(before.nextSibling); - } - } - - function init(component, options) { - component._handlers = blankObject(); - component._slots = blankObject(); - component._bind = options._bind; - component._staged = {}; - - component.options = options; - component.root = options.root || component; - component.store = options.store || component.root.store; - - if (!options.root) { - component._beforecreate = []; - component._oncreate = []; - component._aftercreate = []; - } - } - - function assign(tar, src) { - for (var k in src) { - tar[k] = src[k]; - }return tar; - } - - function assignTrue(tar, src) { - for (var k in src) { - tar[k] = 1; - }return tar; - } - - function flush(component) { - component._lock = true; - callAll(component._beforecreate); - callAll(component._oncreate); - callAll(component._aftercreate); - component._lock = false; - } - - function destroy(detach) { - this.destroy = noop; - this.fire('destroy'); - this.set = noop; - - this._fragment.d(detach !== false); - this._fragment = null; - this._state = {}; - } - - function get() { - return this._state; - } - - function fire(eventName, data) { - var handlers = eventName in this._handlers && this._handlers[eventName].slice(); - if (!handlers) return; - - for (var i = 0; i < handlers.length; i += 1) { - var handler = handlers[i]; - - if (!handler.__calling) { - try { - handler.__calling = true; - handler.call(this, data); - } finally { - handler.__calling = false; - } - } - } - } - - function on(eventName, handler) { - var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); - handlers.push(handler); - - return { - cancel: function cancel() { - var index = handlers.indexOf(handler); - if (~index) handlers.splice(index, 1); - } - }; - } - - function set(newState) { - this._set(assign({}, newState)); - if (this.root._lock) return; - flush(this.root); - } - - function _set(newState) { - var oldState = this._state, - changed = {}, - dirty = false; - - newState = assign(this._staged, newState); - this._staged = {}; - - for (var key in newState) { - if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; - } - if (!dirty) return; - - this._state = assign(assign({}, oldState), newState); - this._recompute(changed, this._state); - if (this._bind) this._bind(changed, this._state); - - if (this._fragment) { - this.fire("state", { changed: changed, current: this._state, previous: oldState }); - this._fragment.p(changed, this._state); - this.fire("update", { changed: changed, current: this._state, previous: oldState }); - } - } - - function _stage(newState) { - assign(this._staged, newState); - } - - function _mount(target, anchor) { - this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); - } - - function _differs(a, b) { - return a != a ? b == b : a !== b || a && (typeof a === "undefined" ? "undefined" : _typeof(a)) === 'object' || typeof a === 'function'; - } - - function noop() {} - - function blankObject() { - return Object.create(null); - } - - function callAll(fns) { - while (fns && fns.length) { - fns.shift()(); - } - } - return PNotifyConfirm; -}(WamPnotify); -//# sourceMappingURL=PNotifyConfirm.js.map \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-history.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-history.js deleted file mode 100644 index e2a83297..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify-history.js +++ /dev/null @@ -1,305 +0,0 @@ -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; }; - -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; }; - -/* src/PNotifyHistory.html generated by Svelte v2.16.1 */ -var WamPnotifyHistory = function (PNotify) { - "use strict"; - - PNotify = PNotify && PNotify.__esModule ? PNotify["default"] : PNotify; - - function data() { - return _extends({ - '_notice': null, // The PNotify notice. - '_options': {} // The options for the notice. - }, PNotify.modules.History.defaults); - }; - - var methods = { - initModule: function initModule(options) { - this.set(options); - - if (this.get().history) { - // Don't destroy notices that are in history. - var _get = this.get(), - _notice = _get._notice; - - if (_notice.get().destroy) { - _notice.set({ 'destroy': false }); - } - } - }, - beforeOpen: function beforeOpen() { - var _get2 = this.get(), - maxInStack = _get2.maxInStack, - _options = _get2._options; - - if (maxInStack === Infinity) { - return; - } - - var stack = _options.stack; - if (stack === false) { - return; - } - - // Remove oldest notifications leaving only maxInStack from the stack. - if (PNotify.notices && PNotify.notices.length > maxInStack) { - // Oldest are normally in front of array, or if stack.push=='top' then - // they are at the end of the array! - var top = stack.push === 'top'; - var forRemoval = []; - var currentOpen = 0; - - for (var i = top ? 0 : PNotify.notices.length - 1; top ? i < PNotify.notices.length : i >= 0; top ? i++ : i--) { - if (['opening', 'open'].indexOf(PNotify.notices[i].get()._state) !== -1 && PNotify.notices[i].get().stack === stack) { - if (currentOpen >= maxInStack) { - forRemoval.push(PNotify.notices[i]); - } else { - currentOpen++; - } - } - } - - for (var _i = 0; _i < forRemoval.length; _i++) { - forRemoval[_i].close(false); - } - } - } - }; - - function setup(Component) { - Component.key = 'History'; - - Component.defaults = { - // Place the notice in the history. - history: true, - // Maximum number of notices to have open in its stack. - maxInStack: Infinity - }; - - Component.init = function (notice) { - return new Component({ target: document.body }); - }; - - Component.showLast = function (stack) { - if (stack === undefined) { - stack = PNotify.defaultStack; - } - if (stack === false) { - return; - } - var top = stack.push === 'top'; - - // Look up the last history notice, and display it. - var i = top ? 0 : PNotify.notices.length - 1; - - var notice = void 0; - do { - notice = PNotify.notices[i]; - - if (!notice) { - return; - } - - i += top ? 1 : -1; - } while (notice.get().stack !== stack || !notice.get()._modules.History.get().history || notice.get()._state === 'opening' || notice.get()._state === 'open'); - - notice.open(); - }; - - Component.showAll = function (stack) { - if (stack === undefined) { - stack = PNotify.defaultStack; - } - if (stack === false) { - return; - } - - // Display all notices. (Disregarding non-history notices.) - for (var i = 0; i < PNotify.notices.length; i++) { - var notice = PNotify.notices[i]; - if ((stack === true || notice.get().stack === stack) && notice.get()._modules.History.get().history) { - notice.open(); - } - } - }; - - // Register the module with PNotify. - PNotify.modules.History = Component; - }; - - function create_main_fragment(component, ctx) { - - return { - c: noop, - - m: noop, - - p: noop, - - d: noop - }; - } - - function PNotifyHistory(options) { - init(this, options); - this._state = assign(data(), options.data); - this._intro = true; - - this._fragment = create_main_fragment(this, this._state); - - if (options.target) { - this._fragment.c(); - this._mount(options.target, options.anchor); - } - } - - assign(PNotifyHistory.prototype, { - destroy: destroy, - get: get, - fire: fire, - on: on, - set: set, - _set: _set, - _stage: _stage, - _mount: _mount, - _differs: _differs - }); - assign(PNotifyHistory.prototype, methods); - - PNotifyHistory.prototype._recompute = noop; - - setup(PNotifyHistory); - - function noop() {} - - function init(component, options) { - component._handlers = blankObject(); - component._slots = blankObject(); - component._bind = options._bind; - component._staged = {}; - - component.options = options; - component.root = options.root || component; - component.store = options.store || component.root.store; - - if (!options.root) { - component._beforecreate = []; - component._oncreate = []; - component._aftercreate = []; - } - } - - function assign(tar, src) { - for (var k in src) { - tar[k] = src[k]; - }return tar; - } - - function destroy(detach) { - this.destroy = noop; - this.fire('destroy'); - this.set = noop; - - this._fragment.d(detach !== false); - this._fragment = null; - this._state = {}; - } - - function get() { - return this._state; - } - - function fire(eventName, data) { - var handlers = eventName in this._handlers && this._handlers[eventName].slice(); - if (!handlers) return; - - for (var i = 0; i < handlers.length; i += 1) { - var handler = handlers[i]; - - if (!handler.__calling) { - try { - handler.__calling = true; - handler.call(this, data); - } finally { - handler.__calling = false; - } - } - } - } - - function on(eventName, handler) { - var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); - handlers.push(handler); - - return { - cancel: function cancel() { - var index = handlers.indexOf(handler); - if (~index) handlers.splice(index, 1); - } - }; - } - - function set(newState) { - this._set(assign({}, newState)); - if (this.root._lock) return; - flush(this.root); - } - - function _set(newState) { - var oldState = this._state, - changed = {}, - dirty = false; - - newState = assign(this._staged, newState); - this._staged = {}; - - for (var key in newState) { - if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; - } - if (!dirty) return; - - this._state = assign(assign({}, oldState), newState); - this._recompute(changed, this._state); - if (this._bind) this._bind(changed, this._state); - - if (this._fragment) { - this.fire("state", { changed: changed, current: this._state, previous: oldState }); - this._fragment.p(changed, this._state); - this.fire("update", { changed: changed, current: this._state, previous: oldState }); - } - } - - function _stage(newState) { - assign(this._staged, newState); - } - - function _mount(target, anchor) { - this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); - } - - function _differs(a, b) { - return a != a ? b == b : a !== b || a && (typeof a === "undefined" ? "undefined" : _typeof(a)) === 'object' || typeof a === 'function'; - } - - function blankObject() { - return Object.create(null); - } - - function flush(component) { - component._lock = true; - callAll(component._beforecreate); - callAll(component._oncreate); - callAll(component._aftercreate); - component._lock = false; - } - - function callAll(fns) { - while (fns && fns.length) { - fns.shift()(); - } - } - return PNotifyHistory; -}(WamPnotify); -//# sourceMappingURL=PNotifyHistory.js.map \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify.js deleted file mode 100644 index 7a3e6ce7..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/libs/wam-pnotify.js +++ /dev/null @@ -1,2037 +0,0 @@ -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; }; - -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; }; - -/* src/PNotify.html generated by Svelte v2.16.1 */ -var WamPnotify = function () { - "use strict"; - - var PNotify = void 0; - - var posTimer = void 0; // Position all timer. - - // These actions need to be done once the DOM is ready. - var onDocumentLoaded = function onDocumentLoaded() { - PNotify.defaultStack.context = document.body; - // Reposition the notices when the window resizes. - window.addEventListener('resize', function () { - if (posTimer) { - clearTimeout(posTimer); - } - posTimer = setTimeout(function () { - PNotify.positionAll(); - }, 10); - }); - }; - - // Creates the background overlay for modal stacks. - var createStackOverlay = function createStackOverlay(stack) { - var overlay = document.createElement('div'); - overlay.classList.add('ui-pnotify-modal-overlay'); - if (stack.context !== document.body) { - overlay.style.height = stack.context.scrollHeight + 'px'; - overlay.style.width = stack.context.scrollWidth + 'px'; - } - // Close the notices on overlay click. - overlay.addEventListener('click', function () { - if (stack.overlayClose) { - PNotify.closeStack(stack); - } - }); - stack.overlay = overlay; - }; - - var insertStackOverlay = function insertStackOverlay(stack) { - if (stack.overlay.parentNode !== stack.context) { - stack.overlay = stack.context.insertBefore(stack.overlay, stack.context.firstChild); - } - }; - - var removeStackOverlay = function removeStackOverlay(stack) { - if (stack.overlay.parentNode) { - stack.overlay.parentNode.removeChild(stack.overlay); - } - }; - - // Default arguments for the new notice helper functions. - var getDefaultArgs = function getDefaultArgs(options, type) { - if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { - options = { 'text': options }; - } - - // Only assign the type if it was requested, so we don't overwrite - // options.type if it has something assigned. - if (type) { - options.type = type; - } - - return { target: document.body, data: options }; - }; - - function _styles(_ref) { - var styling = _ref.styling; - - return (typeof styling === 'undefined' ? 'undefined' : _typeof(styling)) === 'object' ? styling : PNotify.styling[styling]; - } - - function _icons(_ref2) { - var icons = _ref2.icons; - - return (typeof icons === 'undefined' ? 'undefined' : _typeof(icons)) === 'object' ? icons : PNotify.icons[icons]; - } - - function _widthStyle(_ref3) { - var width = _ref3.width; - - return typeof width === 'string' ? 'width: ' + width + ';' : ''; - } - - function _minHeightStyle(_ref4) { - var minHeight = _ref4.minHeight; - - return typeof minHeight === 'string' ? 'min-height: ' + minHeight + ';' : ''; - } - - function data() { - var data = _extends({ - '_state': 'initializing', // The state can be 'initializing', 'opening', 'open', 'closing', and 'closed'. - '_timer': null, // Auto close timer. - '_animTimer': null, // Animation timer. - '_animating': false, // Stores what is currently being animated (in or out). - '_animatingClass': '', // Stores the class that adds entry/exit animation effects. - '_moveClass': '', // Stores the class that adds movement animation effects. - '_timerHide': false, // Stores whether the notice was hidden by a timer. - '_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.) - '_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. - '_modules': {}, // Stores the instances of the modules. - '_modulesPrependContainer': PNotify.modulesPrependContainer, - '_modulesAppendContainer': PNotify.modulesAppendContainer - }, PNotify.defaults); - data.modules = _extends({}, PNotify.defaults.modules); - return data; - }; - - var methods = { - // This runs an event on all the modules. - runModules: function runModules(event) { - if (event === 'init') { - // Initializing a module should only be done if it has an init - // function, which means it's not rendered in the template. - for (var key in PNotify.modules) { - if (!PNotify.modules.hasOwnProperty(key)) { - continue; - } - if (typeof PNotify.modules[key].init === 'function') { - var module = PNotify.modules[key].init(this); - this.initModule(module); - } - } - } else { - var _get = this.get(), - _modules = _get._modules; - - for (var _module in _modules) { - if (!_modules.hasOwnProperty(_module)) { - continue; - } - var moduleOptions = _extends({ - '_notice': this, - '_options': this.get() - }, this.get().modules[_module]); - _modules[_module].set(moduleOptions); - if (typeof _modules[_module][event] === 'function') { - _modules[_module][event](); - } - } - } - }, - - - // This passes module options to a module. - initModule: function initModule(module) { - var _get2 = this.get(), - modules = _get2.modules; - - if (!modules.hasOwnProperty(module.constructor.key)) { - modules[module.constructor.key] = {}; - } - var moduleOptions = _extends({ - '_notice': this, - '_options': this.get() - }, modules[module.constructor.key]); - module.initModule(moduleOptions); - - // Now save the module instance. - - var _get3 = this.get(), - _modules = _get3._modules; - - _modules[module.constructor.key] = module; - }, - update: function update(options) { - // Save old options. - var oldHide = this.get().hide; - var oldIcon = this.get().icon; - - this.set(options); - - // Run the modules. - this.runModules('update'); - - // Update the timed hiding. - if (!this.get().hide) { - this.cancelClose(); - } else if (!oldHide) { - this.queueClose(); - } - this.queuePosition(); - - // Font Awesome 5 replaces our lovely element with a gross SVG. In order - // to make it play nice with Svelte, we have to clear the element and - // make it again. - - var _get4 = this.get(), - icon = _get4.icon; - - if (icon !== oldIcon && (icon === true && this.get().icons === 'fontawesome5' || typeof icon === 'string' && icon.match(/(^| )fa[srlb]($| )/))) { - this.set({ 'icon': false }); - this.set({ 'icon': icon }); - } - - return this; - }, - - - // Display the notice. - open: function open() { - var _this = this; - - var _get5 = this.get(), - _state = _get5._state, - hide = _get5.hide; - - if (_state === 'opening') { - return; - } - if (_state === 'open') { - if (hide) { - this.queueClose(); - } - return; - } - this.set({ - '_state': 'opening', - // This makes the notice visibity: hidden; so its dimensions can be - // determined. - '_animatingClass': 'ui-pnotify-initial-hidden' - }); - // Run the modules. - this.runModules('beforeOpen'); - - var _get6 = this.get(), - stack = _get6.stack; - // If the notice is not in the DOM, or in the wrong context, append it. - - - if (!this.refs.elem.parentNode || stack && stack.context && stack.context !== this.refs.elem.parentNode) { - if (stack && stack.context) { - stack.context.appendChild(this.refs.elem); - } else if (document.body) { - document.body.appendChild(this.refs.elem); - } else { - throw new Error('No context to open this notice in.'); - } - } - - // Wait until the DOM is updated. - setTimeout(function () { - if (stack) { - // Mark the stack so it won't animate the new notice. - stack.animation = false; - // Now position all the notices. - PNotify.positionAll(); - // Reset animation. - stack.animation = true; - } - - _this.animateIn(function () { - // Now set it to hide. - if (_this.get().hide) { - _this.queueClose(); - } - - _this.set({ '_state': 'open' }); - - // Run the modules. - _this.runModules('afterOpen'); - }); - }, 0); - - return this; - }, - remove: function remove(timerHide) { - return this.close(timerHide); - }, - - - // Remove the notice. - close: function close(timerHide) { - var _this2 = this; - - var _get7 = this.get(), - _state = _get7._state; - - if (_state === 'closing' || _state === 'closed') { - return; - } - this.set({ '_state': 'closing', '_timerHide': !!timerHide }); // Make sure it's a boolean. - // Run the modules. - this.runModules('beforeClose'); - - var _get8 = this.get(), - _timer = _get8._timer; - - if (_timer && clearTimeout) { - clearTimeout(_timer); - this.set({ '_timer': null }); - } - this.animateOut(function () { - _this2.set({ '_state': 'closed' }); - // Run the modules. - _this2.runModules('afterClose'); - _this2.queuePosition(); - // If we're supposed to remove the notice from the DOM, do it. - if (_this2.get().remove) { - _this2.refs.elem.parentNode.removeChild(_this2.refs.elem); - } - // Run the modules. - _this2.runModules('beforeDestroy'); - // Remove object from PNotify.notices to prevent memory leak (issue #49) - // unless destroy is off - if (_this2.get().destroy) { - if (PNotify.notices !== null) { - var idx = PNotify.notices.indexOf(_this2); - if (idx !== -1) { - PNotify.notices.splice(idx, 1); - } - } - } - // Run the modules. - _this2.runModules('afterDestroy'); - }); - - return this; - }, - - - // Animate the notice in. - animateIn: function animateIn(callback) { - var _this3 = this; - - // Declare that the notice is animating in. - this.set({ '_animating': 'in' }); - var finished = function finished() { - _this3.refs.elem.removeEventListener('transitionend', finished); - - var _get9 = _this3.get(), - _animTimer = _get9._animTimer, - _animating = _get9._animating, - _moduleIsNoticeOpen = _get9._moduleIsNoticeOpen; - - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_animating !== 'in') { - return; - } - var visible = _moduleIsNoticeOpen; - if (!visible) { - var domRect = _this3.refs.elem.getBoundingClientRect(); - for (var prop in domRect) { - if (domRect[prop] > 0) { - visible = true; - break; - } - } - } - if (visible) { - if (callback) { - callback.call(); - } - // Declare that the notice has completed animating. - _this3.set({ '_animating': false }); - } else { - _this3.set({ '_animTimer': setTimeout(finished, 40) }); - } - }; - - if (this.get().animation === 'fade') { - this.refs.elem.addEventListener('transitionend', finished); - this.set({ '_animatingClass': 'ui-pnotify-in' }); - // eslint-disable-next-line no-unused-expressions - this.refs.elem.style.opacity; // This line is necessary for some reason. Some notices don't fade without it. - this.set({ '_animatingClass': 'ui-pnotify-in ui-pnotify-fade-in' }); - // Just in case the event doesn't fire, call it after 650 ms. - this.set({ '_animTimer': setTimeout(finished, 650) }); - } else { - this.set({ '_animatingClass': 'ui-pnotify-in' }); - finished(); - } - }, - - - // Animate the notice out. - animateOut: function animateOut(callback) { - var _this4 = this; - - // Declare that the notice is animating out. - this.set({ '_animating': 'out' }); - var finished = function finished() { - _this4.refs.elem.removeEventListener('transitionend', finished); - - var _get10 = _this4.get(), - _animTimer = _get10._animTimer, - _animating = _get10._animating, - _moduleIsNoticeOpen = _get10._moduleIsNoticeOpen; - - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_animating !== 'out') { - return; - } - var visible = _moduleIsNoticeOpen; - if (!visible) { - var domRect = _this4.refs.elem.getBoundingClientRect(); - for (var prop in domRect) { - if (domRect[prop] > 0) { - visible = true; - break; - } - } - } - if (!_this4.refs.elem.style.opacity || _this4.refs.elem.style.opacity === '0' || !visible) { - _this4.set({ '_animatingClass': '' }); - - var _get11 = _this4.get(), - stack = _get11.stack; - - if (stack && stack.overlay) { - // Go through the modal stack to see if any are left open. - // TODO: Rewrite this cause it sucks. - var stillOpen = false; - for (var i = 0; i < PNotify.notices.length; i++) { - var notice = PNotify.notices[i]; - if (notice !== _this4 && notice.get().stack === stack && notice.get()._state !== 'closed') { - stillOpen = true; - break; - } - } - if (!stillOpen) { - removeStackOverlay(stack); - } - } - if (callback) { - callback.call(); - } - // Declare that the notice has completed animating. - _this4.set({ '_animating': false }); - } else { - // In case this was called before the notice finished animating. - _this4.set({ '_animTimer': setTimeout(finished, 40) }); - } - }; - - if (this.get().animation === 'fade') { - this.refs.elem.addEventListener('transitionend', finished); - this.set({ '_animatingClass': 'ui-pnotify-in' }); - // Just in case the event doesn't fire, call it after 650 ms. - this.set({ '_animTimer': setTimeout(finished, 650) }); - } else { - this.set({ '_animatingClass': '' }); - finished(); - } - }, - - - // Position the notice. - position: function position() { - // Get the notice's stack. - var _get12 = this.get(), - stack = _get12.stack; - - var elem = this.refs.elem; - if (!stack) { - return; - } - if (!stack.context) { - stack.context = document.body; - } - if (typeof stack.nextpos1 !== 'number') { - stack.nextpos1 = stack.firstpos1; - } - if (typeof stack.nextpos2 !== 'number') { - stack.nextpos2 = stack.firstpos2; - } - if (typeof stack.addpos2 !== 'number') { - stack.addpos2 = 0; - } - - // Skip this notice if it's not shown. - if (!elem.classList.contains('ui-pnotify-in') && !elem.classList.contains('ui-pnotify-initial-hidden')) { - return this; - } - - if (stack.modal) { - if (!stack.overlay) { - createStackOverlay(stack); - } - insertStackOverlay(stack); - } - - // Read from the DOM to cause refresh. - elem.getBoundingClientRect(); - - if (stack.animation) { - // Add animate class. - this.set({ '_moveClass': 'ui-pnotify-move' }); - } - - var spaceY = stack.context === document.body ? window.innerHeight : stack.context.scrollHeight; - var spaceX = stack.context === document.body ? window.innerWidth : stack.context.scrollWidth; - - var csspos1 = void 0; - - if (stack.dir1) { - csspos1 = { - 'down': 'top', - 'up': 'bottom', - 'left': 'right', - 'right': 'left' - }[stack.dir1]; - - // Calculate the current pos1 value. - var curpos1 = void 0; - switch (stack.dir1) { - case 'down': - curpos1 = elem.offsetTop; - break; - case 'up': - curpos1 = spaceY - elem.scrollHeight - elem.offsetTop; - break; - case 'left': - curpos1 = spaceX - elem.scrollWidth - elem.offsetLeft; - break; - case 'right': - curpos1 = elem.offsetLeft; - break; - } - // Remember the first pos1, so the first notice goes there. - if (typeof stack.firstpos1 === 'undefined') { - stack.firstpos1 = curpos1; - stack.nextpos1 = stack.firstpos1; - } - } - - if (stack.dir1 && stack.dir2) { - var csspos2 = { - 'down': 'top', - 'up': 'bottom', - 'left': 'right', - 'right': 'left' - }[stack.dir2]; - - // Calculate the current pos2 value. - var curpos2 = void 0; - switch (stack.dir2) { - case 'down': - curpos2 = elem.offsetTop; - break; - case 'up': - curpos2 = spaceY - elem.scrollHeight - elem.offsetTop; - break; - case 'left': - curpos2 = spaceX - elem.scrollWidth - elem.offsetLeft; - break; - case 'right': - curpos2 = elem.offsetLeft; - break; - } - // Remember the first pos2, so the first notice goes there. - if (typeof stack.firstpos2 === 'undefined') { - stack.firstpos2 = curpos2; - stack.nextpos2 = stack.firstpos2; - } - - // Check that it's not beyond the viewport edge. - var endY = stack.nextpos1 + elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - var endX = stack.nextpos1 + elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - if ((stack.dir1 === 'down' || stack.dir1 === 'up') && endY > spaceY || (stack.dir1 === 'left' || stack.dir1 === 'right') && endX > spaceX) { - // If it is, it needs to go back to the first pos1, and over on pos2. - stack.nextpos1 = stack.firstpos1; - stack.nextpos2 += stack.addpos2 + (typeof stack.spacing2 === 'undefined' ? 25 : stack.spacing2); - stack.addpos2 = 0; - } - - // Move the notice on dir2. - if (typeof stack.nextpos2 === 'number') { - elem.style[csspos2] = stack.nextpos2 + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[csspos2]; // Read from the DOM for update. - } - } - - // Keep track of the widest/tallest notice in the column/row, so we can push the next column/row. - switch (stack.dir2) { - case 'down': - case 'up': - if (elem.offsetHeight + (parseFloat(elem.style.marginTop, 10) || 0) + (parseFloat(elem.style.marginBottom, 10) || 0) > stack.addpos2) { - stack.addpos2 = elem.offsetHeight; - } - break; - case 'left': - case 'right': - if (elem.offsetWidth + (parseFloat(elem.style.marginLeft, 10) || 0) + (parseFloat(elem.style.marginRight, 10) || 0) > stack.addpos2) { - stack.addpos2 = elem.offsetWidth; - } - break; - } - } else if (stack.dir1) { - // Center the notice along dir1 axis, because the stack has no dir2. - var cssMiddle = void 0, - cssposCross = void 0; - switch (stack.dir1) { - case 'down': - case 'up': - cssposCross = ['left', 'right']; - cssMiddle = stack.context.scrollWidth / 2 - elem.offsetWidth / 2; - break; - case 'left': - case 'right': - cssposCross = ['top', 'bottom']; - cssMiddle = spaceY / 2 - elem.offsetHeight / 2; - break; - } - elem.style[cssposCross[0]] = cssMiddle + 'px'; - elem.style[cssposCross[1]] = 'auto'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[cssposCross[0]]; // Read from the DOM for update. - } - } - - if (stack.dir1) { - // Move the notice on dir1. - if (typeof stack.nextpos1 === 'number') { - elem.style[csspos1] = stack.nextpos1 + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[csspos1]; // Read from the DOM for update. - } - } - - // Calculate the next dir1 position. - switch (stack.dir1) { - case 'down': - case 'up': - stack.nextpos1 += elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - break; - case 'left': - case 'right': - stack.nextpos1 += elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - break; - } - } else { - // Center the notice on the screen, because the stack has no dir1. - var cssMiddleLeft = spaceX / 2 - elem.offsetWidth / 2; - var cssMiddleTop = spaceY / 2 - elem.offsetHeight / 2; - elem.style.left = cssMiddleLeft + 'px'; - elem.style.top = cssMiddleTop + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style.left; // Read from the DOM for update. - } - } - - return this; - }, - - - // Queue the position all function so it doesn't run repeatedly and - // use up resources. - queuePosition: function queuePosition(milliseconds) { - if (posTimer) { - clearTimeout(posTimer); - } - if (!milliseconds) { - milliseconds = 10; - } - posTimer = setTimeout(function () { - PNotify.positionAll(); - }, milliseconds); - return this; - }, - cancelRemove: function cancelRemove() { - return this.cancelClose(); - }, - - - // Cancel any pending removal timer. - cancelClose: function cancelClose() { - var _get13 = this.get(), - _timer = _get13._timer, - _animTimer = _get13._animTimer, - _state = _get13._state, - animation = _get13.animation; - - if (_timer) { - clearTimeout(_timer); - } - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_state === 'closing') { - // If it's animating out, stop it. - this.set({ - '_state': 'open', - '_animating': false, - '_animatingClass': animation === 'fade' ? 'ui-pnotify-in ui-pnotify-fade-in' : 'ui-pnotify-in' - }); - } - return this; - }, - queueRemove: function queueRemove() { - return this.queueClose(); - }, - - - // Queue a close timer. - queueClose: function queueClose() { - var _this5 = this; - - // Cancel any current close timer. - this.cancelClose(); - this.set({ - '_timer': setTimeout(function () { - return _this5.close(true); - }, isNaN(this.get().delay) ? 0 : this.get().delay) - }); - return this; - }, - addModuleClass: function addModuleClass() { - var _get14 = this.get(), - _moduleClasses = _get14._moduleClasses; - - for (var _len = arguments.length, classNames = Array(_len), _key = 0; _key < _len; _key++) { - classNames[_key] = arguments[_key]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - if (_moduleClasses.indexOf(className) === -1) { - _moduleClasses.push(className); - } - } - this.set({ _moduleClasses: _moduleClasses }); - }, - removeModuleClass: function removeModuleClass() { - var _get15 = this.get(), - _moduleClasses = _get15._moduleClasses; - - for (var _len2 = arguments.length, classNames = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - classNames[_key2] = arguments[_key2]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - var idx = _moduleClasses.indexOf(className); - if (idx !== -1) { - _moduleClasses.splice(idx, 1); - } - } - this.set({ _moduleClasses: _moduleClasses }); - }, - hasModuleClass: function hasModuleClass() { - var _get16 = this.get(), - _moduleClasses = _get16._moduleClasses; - - for (var _len3 = arguments.length, classNames = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - classNames[_key3] = arguments[_key3]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - if (_moduleClasses.indexOf(className) === -1) { - return false; - } - } - return true; - } - }; - - function oncreate() { - var _this6 = this; - - this.on('mouseenter', function (e) { - // Stop animation, reset the removal timer when the user mouses over. - if (_this6.get().mouseReset && _this6.get()._animating === 'out') { - if (!_this6.get()._timerHide) { - return; - } - _this6.cancelClose(); - } - // Stop the close timer. - if (_this6.get().hide && _this6.get().mouseReset) { - _this6.cancelClose(); - } - }); - - this.on('mouseleave', function (e) { - // Start the close timer. - if (_this6.get().hide && _this6.get().mouseReset && _this6.get()._animating !== 'out') { - _this6.queueClose(); - } - PNotify.positionAll(); - }); - - var _get17 = this.get(), - stack = _get17.stack; - - // Add the notice to the notice array. - - - if (stack && stack.push === 'top') { - PNotify.notices.splice(0, 0, this); - } else { - PNotify.notices.push(this); - } - - // Run the modules. - this.runModules('init'); - - // We're now initialized, but haven't been opened yet. - this.set({ '_state': 'closed' }); - - // Display the notice. - if (this.get().autoDisplay) { - this.open(); - } - }; - - function setup(Component) { - // Add static properties to the PNotify object. - PNotify = Component; - - PNotify.VERSION = '4.0.0'; - - PNotify.defaultStack = { - dir1: 'down', - dir2: 'left', - firstpos1: 25, - firstpos2: 25, - spacing1: 36, - spacing2: 36, - push: 'bottom', - context: window && document.body - }; - - PNotify.defaults = { - // The notice's title. - title: false, - // Whether to trust the title or escape its contents. (Not allow HTML.) - titleTrusted: false, - // The notice's text. - text: false, - // Whether to trust the text or escape its contents. (Not allow HTML.) - textTrusted: false, - // What styling classes to use. (Can be 'brighttheme', 'bootstrap3', 'bootstrap4', or a styling object.) - styling: 'brighttheme', - // What icons to use (Can be 'brighttheme', 'bootstrap3', 'fontawesome4', 'fontawesome5', or an icon object.) - icons: 'brighttheme', - // Additional classes to be added to the notice. (For custom styling.) - addClass: '', - // Class to be added to the notice for corner styling. - cornerClass: '', - // Display the notice when it is created. - autoDisplay: true, - // Width of the notice. - width: '360px', - // Minimum height of the notice. It will expand to fit content. - minHeight: '16px', - // Type of the notice. 'notice', 'info', 'success', or 'error'. - type: 'notice', - // Set icon to true to use the default icon for the selected - // style/type, false for no icon, or a string for your own icon class. - icon: true, - // The animation to use when displaying and hiding the notice. 'none' - // and 'fade' are supported through CSS. Others are supported - // through the Animate module and Animate.css. - animation: 'fade', - // Speed at which the notice animates in and out. 'slow', 'normal', - // or 'fast'. Respectively, 400ms, 250ms, 100ms. - animateSpeed: 'normal', - // Display a drop shadow. - shadow: true, - // After a delay, remove the notice. - hide: true, - // Delay in milliseconds before the notice is removed. - delay: 8000, - // Reset the hide timer if the mouse moves over the notice. - mouseReset: true, - // Remove the notice's elements from the DOM after it is removed. - remove: true, - // Whether to remove the notice from the global array when it is closed. - destroy: true, - // The stack on which the notices will be placed. Also controls the - // direction the notices stack. - stack: PNotify.defaultStack, - // This is where options for modules should be defined. - modules: {} - }; - - // An array of all active notices. - PNotify.notices = []; - - // This object holds all the PNotify modules. They are used to provide - // additional functionality. - PNotify.modules = {}; - - // Modules can add themselves to these to be rendered in the template. - PNotify.modulesPrependContainer = []; - PNotify.modulesAppendContainer = []; - - // Helper function to create a new notice. - PNotify.alert = function (options) { - return new PNotify(getDefaultArgs(options)); - }; - // Helper function to create a new notice (notice type). - PNotify.notice = function (options) { - return new PNotify(getDefaultArgs(options, 'notice')); - }; - // Helper function to create a new notice (info type). - PNotify.info = function (options) { - return new PNotify(getDefaultArgs(options, 'info')); - }; - // Helper function to create a new notice (success type). - PNotify.success = function (options) { - return new PNotify(getDefaultArgs(options, 'success')); - }; - // Helper function to create a new notice (error type). - PNotify.error = function (options) { - return new PNotify(getDefaultArgs(options, 'error')); - }; - - PNotify.removeAll = function () { - PNotify.closeAll(); - }; - - // Close all notices. - PNotify.closeAll = function () { - for (var i = 0; i < PNotify.notices.length; i++) { - if (PNotify.notices[i].close) { - PNotify.notices[i].close(false); - } - } - }; - - PNotify.removeStack = function (stack) { - PNotify.closeStack(stack); - }; - - // Close all notices in a single stack. - PNotify.closeStack = function (stack) { - if (stack === false) { - return; - } - for (var i = 0; i < PNotify.notices.length; i++) { - if (PNotify.notices[i].close && PNotify.notices[i].get().stack === stack) { - PNotify.notices[i].close(false); - } - } - }; - - // Position all notices. - PNotify.positionAll = function () { - // This timer is used for queueing this function so it doesn't run - // repeatedly. - if (posTimer) { - clearTimeout(posTimer); - } - posTimer = null; - // Reset the next position data. - if (PNotify.notices.length > 0) { - for (var i = 0; i < PNotify.notices.length; i++) { - var notice = PNotify.notices[i]; - - var _notice$get = notice.get(), - stack = _notice$get.stack; - - if (!stack) { - continue; - } - if (stack.overlay) { - removeStackOverlay(stack); - } - stack.nextpos1 = stack.firstpos1; - stack.nextpos2 = stack.firstpos2; - stack.addpos2 = 0; - } - for (var _i = 0; _i < PNotify.notices.length; _i++) { - PNotify.notices[_i].position(); - } - } else { - delete PNotify.defaultStack.nextpos1; - delete PNotify.defaultStack.nextpos2; - } - }; - - PNotify.styling = { - brighttheme: { - // Bright Theme doesn't require any UI libraries. - container: 'brighttheme', - notice: 'brighttheme-notice', - info: 'brighttheme-info', - success: 'brighttheme-success', - error: 'brighttheme-error' - }, - bootstrap3: { - container: 'alert', - notice: 'alert-warning', - info: 'alert-info', - success: 'alert-success', - error: 'alert-danger', - icon: 'ui-pnotify-icon-bs3' - }, - bootstrap4: { - container: 'alert', - notice: 'alert-warning', - info: 'alert-info', - success: 'alert-success', - error: 'alert-danger', - icon: 'ui-pnotify-icon-bs4', - title: 'ui-pnotify-title-bs4' - } - }; - - // icons are separate from the style, since bs4 doesn't come with any - PNotify.icons = { - brighttheme: { - notice: 'brighttheme-icon-notice', - info: 'brighttheme-icon-info', - success: 'brighttheme-icon-success', - error: 'brighttheme-icon-error' - }, - bootstrap3: { - notice: 'glyphicon glyphicon-exclamation-sign', - info: 'glyphicon glyphicon-info-sign', - success: 'glyphicon glyphicon-ok-sign', - error: 'glyphicon glyphicon-warning-sign' - }, - // User must have Font Awesome v4.0+ - fontawesome4: { - notice: 'fa fa-exclamation-circle', - info: 'fa fa-info-circle', - success: 'fa fa-check-circle', - error: 'fa fa-exclamation-triangle' - }, - // User must have Font Awesome v5.0+ - fontawesome5: { - notice: 'fas fa-exclamation-circle', - info: 'fas fa-info-circle', - success: 'fas fa-check-circle', - error: 'fas fa-exclamation-triangle' - } - }; - - // Run the deferred actions once the DOM is ready. - if (window && document.body) { - onDocumentLoaded(); - } else { - document.addEventListener('DOMContentLoaded', onDocumentLoaded); - } - } - - function add_css() { - var style = createElement("style"); - style.id = 'svelte-1eldsjg-style'; - 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}"; - append(document.head, style); - } - - function get_each1_context(ctx, list, i) { - var child_ctx = Object.create(ctx); - child_ctx.module = list[i]; - return child_ctx; - } - - function get_each0_context(ctx, list, i) { - var child_ctx = Object.create(ctx); - child_ctx.module = list[i]; - return child_ctx; - } - - function create_main_fragment(component, ctx) { - var div1, - div0, - each0_blocks_1 = [], - each0_lookup = blankObject(), - text0, - text1, - text2, - text3, - each1_blocks_1 = [], - each1_lookup = blankObject(), - div0_class_value, - div0_style_value, - div1_class_value; - - var each0_value = ctx._modulesPrependContainer; - - var get_key = function get_key(ctx) { - return ctx.module.key; - }; - - for (var i = 0; i < each0_value.length; i += 1) { - var child_ctx = get_each0_context(ctx, each0_value, i); - var key = get_key(child_ctx); - each0_blocks_1[i] = each0_lookup[key] = create_each_block_1(component, key, child_ctx); - } - - var if_block0 = ctx.icon !== false && create_if_block_4(component, ctx); - - var if_block1 = ctx.title !== false && create_if_block_2(component, ctx); - - var if_block2 = ctx.text !== false && create_if_block(component, ctx); - - var each1_value = ctx._modulesAppendContainer; - - var get_key_1 = function get_key_1(ctx) { - return ctx.module.key; - }; - - for (var i = 0; i < each1_value.length; i += 1) { - var _child_ctx = get_each1_context(ctx, each1_value, i); - var _key4 = get_key_1(_child_ctx); - each1_blocks_1[i] = each1_lookup[_key4] = create_each_block(component, _key4, _child_ctx); - } - - function mouseover_handler(event) { - component.fire("mouseover", event); - } - - function mouseout_handler(event) { - component.fire("mouseout", event); - } - - function mouseenter_handler(event) { - component.fire("mouseenter", event); - } - - function mouseleave_handler(event) { - component.fire("mouseleave", event); - } - - function mousemove_handler(event) { - component.fire("mousemove", event); - } - - function mousedown_handler(event) { - component.fire("mousedown", event); - } - - function mouseup_handler(event) { - component.fire("mouseup", event); - } - - function click_handler(event) { - component.fire("click", event); - } - - function dblclick_handler(event) { - component.fire("dblclick", event); - } - - function focus_handler(event) { - component.fire("focus", event); - } - - function blur_handler(event) { - component.fire("blur", event); - } - - function touchstart_handler(event) { - component.fire("touchstart", event); - } - - function touchmove_handler(event) { - component.fire("touchmove", event); - } - - function touchend_handler(event) { - component.fire("touchend", event); - } - - function touchcancel_handler(event) { - component.fire("touchcancel", event); - } - - return { - c: function c() { - div1 = createElement("div"); - div0 = createElement("div"); - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].c(); - }text0 = createText("\n "); - if (if_block0) if_block0.c(); - text1 = createText("\n "); - if (if_block1) if_block1.c(); - text2 = createText("\n "); - if (if_block2) if_block2.c(); - text3 = createText("\n "); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].c(); - }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 "; - div0.style.cssText = div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle; - setAttribute(div0, "role", "alert"); - addListener(div1, "mouseover", mouseover_handler); - addListener(div1, "mouseout", mouseout_handler); - addListener(div1, "mouseenter", mouseenter_handler); - addListener(div1, "mouseleave", mouseleave_handler); - addListener(div1, "mousemove", mousemove_handler); - addListener(div1, "mousedown", mousedown_handler); - addListener(div1, "mouseup", mouseup_handler); - addListener(div1, "click", click_handler); - addListener(div1, "dblclick", dblclick_handler); - addListener(div1, "focus", focus_handler); - addListener(div1, "blur", blur_handler); - addListener(div1, "touchstart", touchstart_handler); - addListener(div1, "touchmove", touchmove_handler); - addListener(div1, "touchend", touchend_handler); - addListener(div1, "touchcancel", touchcancel_handler); - 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 "; - setAttribute(div1, "aria-live", "assertive"); - setAttribute(div1, "role", "alertdialog"); - setAttribute(div1, "ui-pnotify", true); - }, - m: function m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].m(div0, null); - }append(div0, text0); - if (if_block0) if_block0.m(div0, null); - append(div0, text1); - if (if_block1) if_block1.m(div0, null); - append(div0, text2); - if (if_block2) if_block2.m(div0, null); - append(div0, text3); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].m(div0, null); - }component.refs.container = div0; - component.refs.elem = div1; - }, - p: function p(changed, ctx) { - var each0_value = ctx._modulesPrependContainer; - 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); - - if (ctx.icon !== false) { - if (if_block0) { - if_block0.p(changed, ctx); - } else { - if_block0 = create_if_block_4(component, ctx); - if_block0.c(); - if_block0.m(div0, text1); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; - } - - if (ctx.title !== false) { - if (if_block1) { - if_block1.p(changed, ctx); - } else { - if_block1 = create_if_block_2(component, ctx); - if_block1.c(); - if_block1.m(div0, text2); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; - } - - if (ctx.text !== false) { - if (if_block2) { - if_block2.p(changed, ctx); - } else { - if_block2 = create_if_block(component, ctx); - if_block2.c(); - if_block2.m(div0, text3); - } - } else if (if_block2) { - if_block2.d(1); - if_block2 = null; - } - - var each1_value = ctx._modulesAppendContainer; - 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); - - 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 ")) { - div0.className = div0_class_value; - } - - if ((changed._widthStyle || changed._minHeightStyle) && div0_style_value !== (div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle)) { - div0.style.cssText = div0_style_value; - } - - 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 ")) { - div1.className = div1_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div1); - } - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].d(); - }if (if_block0) if_block0.d(); - if (if_block1) if_block1.d(); - if (if_block2) if_block2.d(); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].d(); - }if (component.refs.container === div0) component.refs.container = null; - removeListener(div1, "mouseover", mouseover_handler); - removeListener(div1, "mouseout", mouseout_handler); - removeListener(div1, "mouseenter", mouseenter_handler); - removeListener(div1, "mouseleave", mouseleave_handler); - removeListener(div1, "mousemove", mousemove_handler); - removeListener(div1, "mousedown", mousedown_handler); - removeListener(div1, "mouseup", mouseup_handler); - removeListener(div1, "click", click_handler); - removeListener(div1, "dblclick", dblclick_handler); - removeListener(div1, "focus", focus_handler); - removeListener(div1, "blur", blur_handler); - removeListener(div1, "touchstart", touchstart_handler); - removeListener(div1, "touchmove", touchmove_handler); - removeListener(div1, "touchend", touchend_handler); - removeListener(div1, "touchcancel", touchcancel_handler); - if (component.refs.elem === div1) component.refs.elem = null; - } - }; - } - - // (53:4) {#each _modulesPrependContainer as module (module.key)} - function create_each_block_1(component, key_1, ctx) { - var first, switch_instance_anchor; - - var switch_value = ctx.module; - - function switch_props(ctx) { - return { - root: component.root, - store: component.store - }; - } - - if (switch_value) { - var switch_instance = new switch_value(switch_props(ctx)); - } - - function switch_instance_init(event) { - component.initModule(event.module); - } - - if (switch_instance) switch_instance.on("init", switch_instance_init); - - return { - key: key_1, - - first: null, - - c: function c() { - first = createComment(); - if (switch_instance) switch_instance._fragment.c(); - switch_instance_anchor = createComment(); - this.first = first; - }, - m: function m(target, anchor) { - insert(target, first, anchor); - - if (switch_instance) { - switch_instance._mount(target, anchor); - } - - insert(target, switch_instance_anchor, anchor); - }, - p: function p(changed, ctx) { - if (switch_value !== (switch_value = ctx.module)) { - if (switch_instance) { - switch_instance.destroy(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props(ctx)); - switch_instance._fragment.c(); - switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor); - - switch_instance.on("init", switch_instance_init); - } else { - switch_instance = null; - } - } - }, - d: function d(detach) { - if (detach) { - detachNode(first); - detachNode(switch_instance_anchor); - } - - if (switch_instance) switch_instance.destroy(detach); - } - }; - } - - // (56:4) {#if icon !== false} - function create_if_block_4(component, ctx) { - var div, span, span_class_value, div_class_value; - - return { - c: function c() { - div = createElement("div"); - span = createElement("span"); - span.className = span_class_value = ctx.icon === true ? ctx._icons[ctx.type] ? ctx._icons[ctx.type] : '' : ctx.icon; - div.className = div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : ''); - }, - m: function m(target, anchor) { - insert(target, div, anchor); - append(div, span); - component.refs.iconContainer = div; - }, - p: function p(changed, ctx) { - 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)) { - span.className = span_class_value; - } - - if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : ''))) { - div.className = div_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div); - } - - if (component.refs.iconContainer === div) component.refs.iconContainer = null; - } - }; - } - - // (61:4) {#if title !== false} - function create_if_block_2(component, ctx) { - var h4, h4_class_value; - - function select_block_type(ctx) { - if (ctx.titleTrusted) return create_if_block_3; - return create_else_block_1; - } - - var current_block_type = select_block_type(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - h4 = createElement("h4"); - if_block.c(); - h4.className = h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : ''); - }, - m: function m(target, anchor) { - insert(target, h4, anchor); - if_block.m(h4, null); - component.refs.titleContainer = h4; - }, - p: function p(changed, ctx) { - if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(h4, null); - } - - if (changed._styles && h4_class_value !== (h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : ''))) { - h4.className = h4_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(h4); - } - - if_block.d(); - if (component.refs.titleContainer === h4) component.refs.titleContainer = null; - } - }; - } - - // (65:8) {:else} - function create_else_block_1(component, ctx) { - var text; - - return { - c: function c() { - text = createText(ctx.title); - }, - m: function m(target, anchor) { - insert(target, text, anchor); - }, - p: function p(changed, ctx) { - if (changed.title) { - setData(text, ctx.title); - } - }, - d: function d(detach) { - if (detach) { - detachNode(text); - } - } - }; - } - - // (63:8) {#if titleTrusted} - function create_if_block_3(component, ctx) { - var raw_before, raw_after; - - return { - c: function c() { - raw_before = createElement('noscript'); - raw_after = createElement('noscript'); - }, - m: function m(target, anchor) { - insert(target, raw_before, anchor); - raw_before.insertAdjacentHTML("afterend", ctx.title); - insert(target, raw_after, anchor); - }, - p: function p(changed, ctx) { - if (changed.title) { - detachBetween(raw_before, raw_after); - raw_before.insertAdjacentHTML("afterend", ctx.title); - } - }, - d: function d(detach) { - if (detach) { - detachBetween(raw_before, raw_after); - detachNode(raw_before); - detachNode(raw_after); - } - } - }; - } - - // (70:4) {#if text !== false} - function create_if_block(component, ctx) { - var div, div_class_value; - - function select_block_type_1(ctx) { - if (ctx.textTrusted) return create_if_block_1; - return create_else_block; - } - - var current_block_type = select_block_type_1(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - div = createElement("div"); - if_block.c(); - div.className = div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : ''); - setAttribute(div, "role", "alert"); - }, - m: function m(target, anchor) { - insert(target, div, anchor); - if_block.m(div, null); - component.refs.textContainer = div; - }, - p: function p(changed, ctx) { - if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(div, null); - } - - if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : ''))) { - div.className = div_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div); - } - - if_block.d(); - if (component.refs.textContainer === div) component.refs.textContainer = null; - } - }; - } - - // (74:8) {:else} - function create_else_block(component, ctx) { - var text; - - return { - c: function c() { - text = createText(ctx.text); - }, - m: function m(target, anchor) { - insert(target, text, anchor); - }, - p: function p(changed, ctx) { - if (changed.text) { - setData(text, ctx.text); - } - }, - d: function d(detach) { - if (detach) { - detachNode(text); - } - } - }; - } - - // (72:8) {#if textTrusted} - function create_if_block_1(component, ctx) { - var raw_before, raw_after; - - return { - c: function c() { - raw_before = createElement('noscript'); - raw_after = createElement('noscript'); - }, - m: function m(target, anchor) { - insert(target, raw_before, anchor); - raw_before.insertAdjacentHTML("afterend", ctx.text); - insert(target, raw_after, anchor); - }, - p: function p(changed, ctx) { - if (changed.text) { - detachBetween(raw_before, raw_after); - raw_before.insertAdjacentHTML("afterend", ctx.text); - } - }, - d: function d(detach) { - if (detach) { - detachBetween(raw_before, raw_after); - detachNode(raw_before); - detachNode(raw_after); - } - } - }; - } - - // (79:4) {#each _modulesAppendContainer as module (module.key)} - function create_each_block(component, key_1, ctx) { - var first, switch_instance_anchor; - - var switch_value = ctx.module; - - function switch_props(ctx) { - return { - root: component.root, - store: component.store - }; - } - - if (switch_value) { - var switch_instance = new switch_value(switch_props(ctx)); - } - - function switch_instance_init(event) { - component.initModule(event.module); - } - - if (switch_instance) switch_instance.on("init", switch_instance_init); - - return { - key: key_1, - - first: null, - - c: function c() { - first = createComment(); - if (switch_instance) switch_instance._fragment.c(); - switch_instance_anchor = createComment(); - this.first = first; - }, - m: function m(target, anchor) { - insert(target, first, anchor); - - if (switch_instance) { - switch_instance._mount(target, anchor); - } - - insert(target, switch_instance_anchor, anchor); - }, - p: function p(changed, ctx) { - if (switch_value !== (switch_value = ctx.module)) { - if (switch_instance) { - switch_instance.destroy(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props(ctx)); - switch_instance._fragment.c(); - switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor); - - switch_instance.on("init", switch_instance_init); - } else { - switch_instance = null; - } - } - }, - d: function d(detach) { - if (detach) { - detachNode(first); - detachNode(switch_instance_anchor); - } - - if (switch_instance) switch_instance.destroy(detach); - } - }; - } - - function PNotify_1(options) { - var _this7 = this; - - init(this, options); - this.refs = {}; - this._state = assign(data(), options.data); - - this._recompute({ styling: 1, icons: 1, width: 1, minHeight: 1 }, this._state); - this._intro = true; - - if (!document.getElementById("svelte-1eldsjg-style")) add_css(); - - this._fragment = create_main_fragment(this, this._state); - - this.root._oncreate.push(function () { - oncreate.call(_this7); - _this7.fire("update", { changed: assignTrue({}, _this7._state), current: _this7._state }); - }); - - if (options.target) { - this._fragment.c(); - this._mount(options.target, options.anchor); - - flush(this); - } - } - - assign(PNotify_1.prototype, { - destroy: destroy, - get: get, - fire: fire, - on: on, - set: set, - _set: _set, - _stage: _stage, - _mount: _mount, - _differs: _differs - }); - assign(PNotify_1.prototype, methods); - - PNotify_1.prototype._recompute = function _recompute(changed, state) { - if (changed.styling) { - if (this._differs(state._styles, state._styles = _styles(state))) changed._styles = true; - } - - if (changed.icons) { - if (this._differs(state._icons, state._icons = _icons(state))) changed._icons = true; - } - - if (changed.width) { - if (this._differs(state._widthStyle, state._widthStyle = _widthStyle(state))) changed._widthStyle = true; - } - - if (changed.minHeight) { - if (this._differs(state._minHeightStyle, state._minHeightStyle = _minHeightStyle(state))) changed._minHeightStyle = true; - } - }; - - setup(PNotify_1); - - function createElement(name) { - return document.createElement(name); - } - - function append(target, node) { - target.appendChild(node); - } - - function blankObject() { - return Object.create(null); - } - - function createText(data) { - return document.createTextNode(data); - } - - function setAttribute(node, attribute, value) { - if (value == null) node.removeAttribute(attribute);else node.setAttribute(attribute, value); - } - - function addListener(node, event, handler, options) { - node.addEventListener(event, handler, options); - } - - function insert(target, node, anchor) { - target.insertBefore(node, anchor); - } - - function updateKeyedEach(old_blocks, component, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, intro_method, next, get_context) { - var o = old_blocks.length; - var n = list.length; - - var i = o; - var old_indexes = {}; - while (i--) { - old_indexes[old_blocks[i].key] = i; - }var new_blocks = []; - var new_lookup = {}; - var deltas = {}; - - var i = n; - while (i--) { - var child_ctx = get_context(ctx, list, i); - var key = get_key(child_ctx); - var block = lookup[key]; - - if (!block) { - block = create_each_block(component, key, child_ctx); - block.c(); - } else if (dynamic) { - block.p(changed, child_ctx); - } - - new_blocks[i] = new_lookup[key] = block; - - if (key in old_indexes) deltas[key] = Math.abs(i - old_indexes[key]); - } - - var will_move = {}; - var did_move = {}; - - function insert(block) { - block[intro_method](node, next); - lookup[block.key] = block; - next = block.first; - n--; - } - - while (o && n) { - var new_block = new_blocks[n - 1]; - var old_block = old_blocks[o - 1]; - var new_key = new_block.key; - var old_key = old_block.key; - - if (new_block === old_block) { - // do nothing - next = new_block.first; - o--; - n--; - } else if (!new_lookup[old_key]) { - // remove old block - destroy(old_block, lookup); - o--; - } else if (!lookup[new_key] || will_move[new_key]) { - insert(new_block); - } else if (did_move[old_key]) { - o--; - } else if (deltas[new_key] > deltas[old_key]) { - did_move[new_key] = true; - insert(new_block); - } else { - will_move[old_key] = true; - o--; - } - } - - while (o--) { - var old_block = old_blocks[o]; - if (!new_lookup[old_block.key]) destroy(old_block, lookup); - } - - while (n) { - insert(new_blocks[n - 1]); - }return new_blocks; - } - - function destroyBlock(block, lookup) { - block.d(1); - lookup[block.key] = null; - } - - function detachNode(node) { - node.parentNode.removeChild(node); - } - - function removeListener(node, event, handler, options) { - node.removeEventListener(event, handler, options); - } - - function createComment() { - return document.createComment(''); - } - - function setData(text, data) { - text.data = '' + data; - } - - function detachBetween(before, after) { - while (before.nextSibling && before.nextSibling !== after) { - before.parentNode.removeChild(before.nextSibling); - } - } - - function init(component, options) { - component._handlers = blankObject(); - component._slots = blankObject(); - component._bind = options._bind; - component._staged = {}; - - component.options = options; - component.root = options.root || component; - component.store = options.store || component.root.store; - - if (!options.root) { - component._beforecreate = []; - component._oncreate = []; - component._aftercreate = []; - } - } - - function assign(tar, src) { - for (var k in src) { - tar[k] = src[k]; - }return tar; - } - - function assignTrue(tar, src) { - for (var k in src) { - tar[k] = 1; - }return tar; - } - - function flush(component) { - component._lock = true; - callAll(component._beforecreate); - callAll(component._oncreate); - callAll(component._aftercreate); - component._lock = false; - } - - function destroy(detach) { - this.destroy = noop; - this.fire('destroy'); - this.set = noop; - - this._fragment.d(detach !== false); - this._fragment = null; - this._state = {}; - } - - function get() { - return this._state; - } - - function fire(eventName, data) { - var handlers = eventName in this._handlers && this._handlers[eventName].slice(); - if (!handlers) return; - - for (var i = 0; i < handlers.length; i += 1) { - var handler = handlers[i]; - - if (!handler.__calling) { - try { - handler.__calling = true; - handler.call(this, data); - } finally { - handler.__calling = false; - } - } - } - } - - function on(eventName, handler) { - var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); - handlers.push(handler); - - return { - cancel: function cancel() { - var index = handlers.indexOf(handler); - if (~index) handlers.splice(index, 1); - } - }; - } - - function set(newState) { - this._set(assign({}, newState)); - if (this.root._lock) return; - flush(this.root); - } - - function _set(newState) { - var oldState = this._state, - changed = {}, - dirty = false; - - newState = assign(this._staged, newState); - this._staged = {}; - - for (var key in newState) { - if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; - } - if (!dirty) return; - - this._state = assign(assign({}, oldState), newState); - this._recompute(changed, this._state); - if (this._bind) this._bind(changed, this._state); - - if (this._fragment) { - this.fire("state", { changed: changed, current: this._state, previous: oldState }); - this._fragment.p(changed, this._state); - this.fire("update", { changed: changed, current: this._state, previous: oldState }); - } - } - - function _stage(newState) { - assign(this._staged, newState); - } - - function _mount(target, anchor) { - this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); - } - - function _differs(a, b) { - return a != a ? b == b : a !== b || a && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object' || typeof a === 'function'; - } - - function callAll(fns) { - while (fns && fns.length) { - fns.shift()(); - } - } - - function noop() {} - return PNotify_1; -}(); -//# sourceMappingURL=PNotify.js.map \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-conditions.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-conditions.js deleted file mode 100644 index a9e9a697..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-conditions.js +++ /dev/null @@ -1,856 +0,0 @@ -(function($) { - class cEditorCondition { - constructor(editor, group, options) { - this.editor = editor; - this.group = group; - this.element = editor.element; - - this.options = $.extend({}, { - index: null, - operator: 'equals' - }, options); - - this._index = this.options.index; - this._conditionElement = this._createMarkup(); - - this._hintElement = this._conditionElement.find(".wam-cleditor__hint"); - this._hintContentElement = this._conditionElement.find(".wam-cleditor__hint-content"); - - this._prepareFields(true); - this._register_events() - } - - getData() { - let paramOptions = this._getParamOptions(), - currentParam = this._conditionElement.find(".wam-cleditor__param-select").val(), - $operator = this._conditionElement.find(".wam-cleditor__operator-select"), - currentOperator = $operator.val(); - - let value = null; - - if( 'select' === paramOptions['type'] ) { - value = this._getSelectControlValue(paramOptions); - } else if( 'equals' === paramOptions['type'] ) { - value = this._getEqualsControlValue(paramOptions); - } else if( 'integer' === paramOptions['type'] ) { - value = this._getIntegerControlValue(paramOptions); - } else { - value = this._getTextValue(paramOptions); - } - - return { - param: currentParam, - operator: currentOperator, - type: paramOptions['type'], - value: value - }; - } - - _createMarkup() { - let conditionTmpl = this.editor.getTemplate(".wam-cleditor__condition"); - this.group.groupElement.find(".wam-cleditor__conditions").append(conditionTmpl); - return conditionTmpl; - } - - _remove() { - this.group.removeCondition(this._index); - - this._conditionElement.remove(); - - this.group.groupElement.trigger('winp.conditions-changed'); - this.element.trigger('wam.editor-updated'); - } - - _register_events() { - let self = this; - - this._conditionElement.find(".wam-cleditor__param-select").change(function() { - self._prepareFields(); - self.element.trigger('wam.editor-updated'); - }); - - this._conditionElement.find(".wam-cleditor__operator-select").change(function() { - self.element.trigger('wam.editor-updated'); - }); - - this._conditionElement.find(".wam-cleditor__condition-value").on('change keyup', function() { - self.element.trigger('wam.editor-updated'); - }) - - // buttons - this._conditionElement.find(".js-wam-cleditor__condition-remove").click(function() { - self._remove(); - return false; - }); - - this._conditionElement.find(".js-wam-cleditor__condition-add-and").click(function() { - self.group.addCondition(); - return false; - }); - } - - _prepareFields(isInit) { - if( isInit && this.options.param ) { - this._selectParam(this.options.param); - } - - let paramOptions = this._getParamOptions(); - - this._setParamHint(paramOptions.description); - - let operators = []; - - if( 'select' === paramOptions['type'] || paramOptions['onlyEquals'] ) { - operators = ['equals', 'notequal']; - } else if( 'date' === paramOptions['type'] ) { - operators = ['equals', 'notequal', 'younger', 'older', 'between']; - } else if( 'date-between' === paramOptions['type'] ) { - operators = ['between']; - } else if( 'integer' === paramOptions['type'] ) { - operators = ['equals', 'notequal', 'less', 'greater', 'between']; - } else if( 'equals' === paramOptions['type'] ) { - operators = ['equals', 'notequal']; - } else if( 'regexp' === paramOptions['type'] ) { - operators = ['equals']; - } else if( 'default' === paramOptions['type'] ) { - operators = ['equals', 'notequal']; - } else { - operators = ['equals', 'notequal', 'contains', 'notcontain']; - } - - this._setOperators(operators); - - if( isInit && this.options.operator ) { - this._selectOperator(this.options.operator); - } else { - this._selectFirstOperator(); - } - - this._createValueControl(paramOptions, isInit); - } - - /** - * Displays and configures the param hint. - */ - _setParamHint(description) { - - if( description ) { - this._hintContentElement.html(description); - this._hintElement.show(); - } else { - this._hintElement.hide(); - } - } - - /** - * Creates control to specify value. - */ - _createValueControl(paramOptions, isInit) { - if( 'select' === paramOptions['type'] ) { - this._createValueAsSelect(paramOptions, isInit); - } else if( 'equals' === paramOptions['type'] ) { - this._createValueAsEquals(paramOptions, isInit); - } else if( 'integer' === paramOptions['type'] ) { - this._createValueAsInteger(paramOptions, isInit); - } else { - this._createValueAsText(paramOptions, isInit); - } - } - - // ------------------- - // Select Control - // ------------------- - - /** - * Creates the Select control. - */ - _createValueAsSelect(paramOptions, isInit) { - let self = this; - - let createSelectField = function(values) { - let $select = self._createSelect(values); - self._insertValueControl($select); - if( isInit && self.options.value ) { - self._setSelectValue(self.options.value); - } - self._conditionElement.find(".wam-cleditor__condition-value").trigger("insert.select"); - }; - - if( !paramOptions['values'] ) { - return; - } - if( 'ajax' === paramOptions['values']['type'] ) { - - let $fakeSelect = self._createSelect([ - { - value: null, - title: '- loading -' - } - ]); - self._insertValueControl($fakeSelect); - - $fakeSelect.attr('disabled', 'disabled'); - $fakeSelect.addClass('wam-cleditor__fake-select'); - - if( isInit && this.options.value ) { - $fakeSelect.data('value', this.options.value); - } - - let req = $.ajax({ - url: window.ajaxurl, - method: 'post', - data: { - action: paramOptions['values']['action'] - }, - dataType: 'json', - success: function(data) { - createSelectField(data.values); - }, - error: function() { - console.log('Unexpected error during the ajax request.'); - }, - complete: function() { - if( $fakeSelect ) { - $fakeSelect.remove(); - } - $fakeSelect = null; - } - }); - } else { - createSelectField(paramOptions['values']); - } - } - - /** - * Returns a value for the select control. - */ - _getSelectControlValue() { - let $select = this._conditionElement.find(".wam-cleditor__condition-value select"); - - let value = $select.val(); - if( !value ) { - value = $select.data('value'); - } - return value; - } - - /** - * Sets a select value. - */ - _setSelectValue(value) { - let $select = this._conditionElement.find(".wam-cleditor__condition-value select"); - - if( $select.hasClass('.wam-cleditor__fake-select') ) { - $select.data('value', value); - } else { - $select.val(value); - } - } - - // ------------------- - // Integer Control - // ------------------- - - /** - * Creates a control for the input linked with the integer. - */ - _createValueAsInteger(paramOptions, isInit) { - let self = this; - - let $operator = this._conditionElement.find(".wam-cleditor__operator-select"); - - $operator.on('change', function() { - let currentOperator = $operator.val(); - - let $control; - if( 'between' === currentOperator ) { - $control = $(" and "); - } else { - $control = $(""); - } - - self._insertValueControl($control); - }); - - $operator.change(); - if( isInit && this.options.value ) { - this._setIntegerValue(this.options.value); - } - } - - /** - * Returns a value for the Integer control. - */ - _getIntegerControlValue() { - let value = {}; - - let $operator = this._conditionElement.find(".wam-cleditor__operator-select"); - let currentOperator = $operator.val(); - - if( 'between' === currentOperator ) { - value.range = true; - value.start = this._conditionElement.find(".wam-cleditor__integer-start").val(); - value.end = this._conditionElement.find(".wam-cleditor__integer-end").val(); - - } else { - value = this._conditionElement.find(".wam-cleditor__integer-solo").val(); - } - - return value; - } - - /** - * Sets a value for the Integer control. - */ - _setIntegerValue(value) { - if( !value ) { - value = {}; - } - - if( value.range ) { - this._conditionElement.find(".wam-cleditor__integer-start").val(value.start); - this._conditionElement.find(".wam-cleditor__integer-end").val(value.end); - } else { - this._conditionElement.find(".wam-cleditor__integer-solo").val(value); - } - } - - // ------------------- - // Query string Control - // ------------------- - - /** - * Creates a control for the input linked with the integer. - */ - _createValueAsEquals(paramOptions, isInit) { - let self = this; - - let $operator = this._conditionElement.find(".wam-cleditor__operator-select"); - let $control; - - $control = $(" = "); - - if( paramOptions['placeholder'] && $.isArray(paramOptions['placeholder']) ) { - $control.find('.wam-cleditor__equals-value1').attr('placeholder', paramOptions['placeholder'][0]); - - if( paramOptions['placeholder'][1] ) { - $control.find('.wam-cleditor__equals-value2').attr('placeholder', paramOptions['placeholder'][1]); - } - } - - self._insertValueControl($control); - - $operator.on('change', function() { - let currentOperator = $operator.val(); - let equalIcon = $control.find('.wam-cleditor__equals-icon'); - - if( 'equals' === currentOperator ) { - equalIcon.text('='); - } else { - equalIcon.text('≠'); - } - }); - - $operator.change(); - - if( isInit && this.options.value ) { - this._setEqualsControlValue(this.options.value); - } - } - - /** - * Returns a value for the Integer control. - */ - _getEqualsControlValue() { - let value = {}; - - value.var_name = this._conditionElement.find(".wam-cleditor__equals-value1").val(); - value.var_value = this._conditionElement.find(".wam-cleditor__equals-value2").val(); - - return value; - } - - /** - * Sets a value for the Integer control. - */ - _setEqualsControlValue(value) { - if( !value ) { - value = {}; - } - - this._conditionElement.find(".wam-cleditor__equals-value1").val(value.var_name); - this._conditionElement.find(".wam-cleditor__equals-value2").val(value.var_value); - } - - // ------------------- - // Text Control - // ------------------- - - /** - * Creates a control for the input linked with the integer. - */ - _createValueAsText(paramOptions, isInit) { - let $control = $(""); - - if( paramOptions['placeholder'] ) { - $control.attr('placeholder', paramOptions['placeholder']); - } - - this._insertValueControl($control); - - if( isInit && this.options.value && "" !== this.options.value ) { - this._setTextValue(this.options.value); - } else if( paramOptions['default_value'] ) { - this._setTextValue(paramOptions['default_value']) - } - } - - /** - * Returns a value for the Text control. - * @returns {undefined} - */ - _getTextValue() { - return this._conditionElement.find(".wam-cleditor__text").val(); - } - - /** - * Sets a value for the Text control. - */ - _setTextValue(value) { - this._conditionElement.find(".wam-cleditor__text").val(value); - } - - // ------------------- - // Helper Methods - // ------------------- - - _selectParam(value) { - this._conditionElement.find(".wam-cleditor__param-select").val(value); - } - - _selectOperator(value) { - this._conditionElement.find(".wam-cleditor__operator-select").val(value); - } - - _selectFirstOperator() { - this._conditionElement.find(".wam-cleditor__operator-select").prop('selectedIndex', 0); - } - - _setOperators(values) { - let $operator = this._conditionElement.find(".wam-cleditor__operator-select"); - $operator.show();//.off('change'); - - $operator.find("option").hide(); - for( let index in values ) { - if( !values.hasOwnProperty(index) ) { - continue; - } - $operator.find("option[value='" + values[index] + "']").show(); - } - let value = $operator.find("option:not(:hidden):eq(0)").val(); - $operator.val(value); - } - - _insertValueControl($control) { - this._conditionElement.find(".wam-cleditor__condition-value").html("").append($control); - } - - _getParamOptions() { - let selectElement = this._conditionElement.find(".wam-cleditor__param-select"), - optionElement = selectElement.find('option:selected'); - - if( !selectElement.length ) { - return false; - } - - let type = optionElement.data('type'), - data = { - id: selectElement.val(), - title: optionElement.text().trim(), - type: optionElement.data('type'), - default_value: optionElement.data('default-value'), - values: optionElement.data('params'), - description: optionElement.data('hint').trim() - }; - - if( "text" === type || "default" === type || "regexp" === type || "equals" === type ) { - data['placeholder'] = optionElement.data('placeholder'); - delete data['values']; - } - - return data; - } - - _createSelect(values, attrs) { - let $select = $(""); - if( attrs ) { - $select.attr(attrs); - } - - for( let index in values ) { - if( !values.hasOwnProperty(index) ) { - continue; - } - let item = values[index]; - let $option = ''; - - if( typeof index === "string" && isNaN(index) === true ) { - let $optgroup = $("").attr('label', index); - - for( let subindex in item ) { - if( !item.hasOwnProperty(subindex) ) { - continue; - } - let subvalue = item[subindex]; - $option = $("").attr('value', subvalue['value']).text(subvalue['title']); - $optgroup.append($option); - } - $select.append($optgroup); - } else { - $option = $("").attr('value', item['value']).text(item['title']); - $select.append($option); - } - } - - return $select; - } - } - - class cEditorGroup { - constructor(editor, options) { - this.editor = editor; - this.element = editor.element; - - this.options = $.extend({}, { - conditions: null, - index: null - }, options); - this._index = this.options.index; - - this.conditions = {}; - - this.groupElement = this._createMarkup(); - - this._conditionsCounter = 0; - - this._load(); - } - - getData() { - let condtions = []; - - for( let ID in this.conditions ) { - if( !this.conditions.hasOwnProperty(ID) ) { - continue; - } - - condtions.push(this.conditions[ID].getData()); - } - - if( !condtions.length ) { - return null; - } - - return { - type: 'OR', - conditions: condtions - }; - } - - getCountConditions() { - return Object.keys(this.conditions).length; - } - - removeCondition(ID) { - if( this.conditions[ID] ) { - delete this.conditions[ID]; - } - } - - _createMarkup() { - let $group = this.editor.getTemplate('.wam-cleditor__group'); - this.element.find(".wam-cleditor__groups").append($group); - - if( this._index <= 1 ) { - $group.find('.wam-cleditor__group-type').hide(); - $group.find('.js-wam-cleditor__remove-group').remove(); - } else { - $group.find('.wam-cleditor__group-type').show(); - $group.find('.wam-cleditor__first-group-title').remove(); - } - - return $group; - } - - _registerEvents() { - let self = this; - - this.groupElement.find(".js-wam-cleditor__add-condition").click(function() { - self.addCondition(); - return false; - }); - - this.groupElement.find(".js-wam-cleditor__remove-group").click(function() { - self._remove(); - return false; - }); - - this.groupElement.on('winp.conditions-changed', function() { - self._checkIsEmpty(); - }); - } - - _load() { - if( !this.options.conditions ) { - this.addCondition(); - } else { - this._setGroupData(); - } - - this._registerEvents(); - } - - _remove() { - this.editor.removeGroup(this._index); - this.groupElement.remove(); - - this.element.trigger('wam.filters-changed'); - this.element.trigger('wam.editor-updated'); - } - - _setGroupData() { - this.groupElement.find('.wam-cleditor__condition').remove(); - - if( this.options.conditions ) { - for( let index in this.options.conditions ) { - if( !this.options.conditions.hasOwnProperty(index) ) { - continue; - } - - this.addCondition(this.options.conditions[index]); - } - } - - this._checkIsEmpty(); - } - - addCondition(data) { - if( !data ) { - data = {type: 'AND'}; - } - - this._conditionsCounter = this._conditionsCounter + 1; - data.index = this._index + '_' + this._conditionsCounter; - - this.conditions[data.index] = new cEditorCondition(this.editor, this, data); - - this.groupElement.trigger('winp.conditions-changed'); - this.element.trigger('wam.editor-updated'); - } - - _checkIsEmpty() { - if( this.getCountConditions() === 0 ) { - this.groupElement.addClass('wam-cleditor__empty'); - } else { - this.groupElement.removeClass('wam-cleditor__empty'); - } - } - } - - class cEditor { - constructor(element, options) { - this.element = element; - - this.options = $.extend({}, { - groups: null, - // where to get an editor template - templateSelector: null, - // where to put editor options - saveInputSelector: null, - callback: null - }, options); - - this.groups = {}; - this.groupsCounter = 0; - - this.element = this._createMarkup(); - - this._load(); - - if( this.options.callback ) { - this.options.callback(this); - } - } - - /*showParams() { - this.element.find('.wam-cleditor__param-select').find('options').show(); - } - - hideParams(params) { - if( params.length ) { - for( let i = 0; i < params.length; i++ ) { - this.element.find('.wam-cleditor__param-select').find('option[value="' + params[i] + '"]').hide(); - } - } - }*/ - - getData() { - let self = this; - let groups = []; - - for( let ID in self.groups ) { - if( !self.groups.hasOwnProperty(ID) ) { - continue; - } - - let groupData = self.groups[ID].getData(); - - if( groupData ) { - groups.push(self.groups[ID].getData()); - } - } - - if( !groups.length ) { - return null; - } - - return groups; - } - - getImportData() { - if( this.options.saveInputSelector ) { - let data = this.element.parent().find(this.options.saveInputSelector).val(); - - if( !data ) { - return null; - } - - return JSON.parse(data); - } - - return null; - } - - setExportData() { - if( this.options.saveInputSelector && $(this.options.saveInputSelector).length ) { - let data = !this.getData() ? '' : JSON.stringify(this.getData()); - this.element.parent().find(this.options.saveInputSelector).val(data); - } else { - throw new Error('[Error]: Save input is not found! Selector: ' + this.options.saveInputSelector); - } - } - - getTemplate(selector) { - let tmpl = $($(this.options.templateSelector).html()); - - if( !tmpl.length ) { - throw new Error('[Error]: Editor template is not found! Selector: ' + this.options.templateSelector); - } - - return tmpl.find(selector).clone(); - } - - getCountGroups() { - return Object.keys(this.groups).length; - } - - removeGroup(ID) { - if( this.groups[ID] ) { - delete this.groups[ID]; - } - } - - destroy() { - this.element.remove(); - } - - _registerEvents() { - let self = this; - - this.element.on('wam.editor-updated', function() { - self.setExportData(); - }); - - this.element.on('wam.filters-changed', function() { - self._checkIsEmpty(); - }); - - this.element.find(".js-wam-cleditor__add-group").click(function() { - self._addGroup(); - return false; - }); - } - - _createMarkup() { - let $editor = $('
      ').addClass('wam-cleditor'); - this.element.prepend($editor); - - $editor.append(this.getTemplate('.wam-cleditor__wrap')); - $editor.append(this.getTemplate('.wam-cleditor__buttons-group')); - - return $editor; - } - - _load() { - let groups, savedOptions; - - savedOptions = this.getImportData(); - - if( savedOptions ) { - groups = savedOptions; - } else if( this.options.groups && this.options.groups.length > 0 ) { - groups = this.options.groups; - } - - if( groups ) { - for( let index in groups ) { - if( !groups.hasOwnProperty(index) ) { - continue; - } - - this._addGroup(groups[index]); - } - } - - this._checkIsEmpty(); - this._registerEvents(); - - // If editor will create demo data, we will trigger an event - if( !savedOptions ) { - this.element.trigger('wam.editor-updated'); - } - - } - - _addGroup(data) { - if( !data ) { - data = {type: 'OR'}; - } - - this.groupsCounter = this.groupsCounter + 1; - - this.groups[this.groupsCounter] = new cEditorGroup(this, { - index: this.groupsCounter, - conditions: data.conditions - }); - - this.element.trigger('wam.editor-updated'); - this.element.trigger('wam.filters-changed'); - } - - _checkIsEmpty() { - if( this.getCountGroups() === 0 ) { - this.element.addClass('wam-cleditor__empty'); - } else { - this.element.removeClass('wam-cleditor__empty'); - } - } - } - - $.fn.wamConditionsEditor = function(options) { - return this.each(function() { - new cEditor($(this), options); - }); - }; - -})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-manager.js b/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-manager.js deleted file mode 100644 index 8ae85b29..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/assets/js/wam-assets-manager.js +++ /dev/null @@ -1,678 +0,0 @@ -/** - * Assets manager scripts - * @author Webcraftic - * @copyright (c) 13.11.2017, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - class AssetsManager { - constructor() { - if( undefined === typeof window.wam_localize_data || !wam_localize_data.ajaxurl ) { - throw new Error("Undefined wam_localize_data, please check the var in source!"); - } - - this.pluginVars = window.wam_localize_data; - - this.initEvents(); - this.updateStat(); - this.setDefaultCategoryTab(); - } - - initEvents() { - var self = this; - - $('.js-wam-require-handle-tag').click(function() { - let handle = $(this).data('tag-handle'), - assetElement = $('[data-asset-handle="' + handle + '"]'), - currentTabElement = $(this).closest('.wam-assets-type-tab-content'), - searchTabElement = assetElement.closest('.wam-assets-type-tab-content'); - - self.switchCategoryTab($('.wam-assets-type-tabs__button--' + searchTabElement.data('category'))); - - assetElement.get(0).scrollIntoView({ - block: 'center' - }); - - assetElement.css('border', '1px solid red'); - setTimeout(function() { - assetElement.css('border', '0'); - }, 2000) - - return false; - }); - - $('.js-wam-assets-type-tabs__button').click(function() { - self.switchCategoryTab($(this)); - return false; - }); - - $('.js-wam-nav-plugins__tab-switch').click(function() { - self.switchPluginTab($(this)); - return false; - }); - - $('.js-wam-top-panel__save-button').click(function() { - self.saveSettings(); - return false; - }); - - $('.js-wam-select-plugin-load-mode').change(function() { - if( 'enable' === $(this).val() ) { - self.enablePlugin($(this)); - } else if( 'disable_assets' === $(this).val() || 'disable_plugin' === $(this).val() ) { - self.disablePlugin($(this)); - } - - return false; - }); - - $('.js-wam-open-plugin-settings').click(function() { - if( $(this).hasClass('js-wam-button--opened') ) { - self.closePluginSettings($(this)); - return false; - } - - self.openPluginSettings($(this)); - - return false; - }); - - $('.js-wam-select-asset-load-mode').change(function() { - let selectElement = $(this), - requires = selectElement.closest('tr').find('.js-wam-table__asset-requires'); - - if( 'enable' === selectElement.val() ) { - self.enableAsset(selectElement); - return false; - } - - if( requires.length ) { - - // show warning - var notice = WamPnotify.notice({ - title: self.pluginVars.i18n.asset_canbe_required_title, - text: self.pluginVars.i18n.asset_canbe_required_text.replace('%s', requires.text()), - icon: 'fas fa-question-circle', - hide: false, - stack: { - 'dir1': 'down', - 'modal': true, - 'firstpos1': 25 - }, - modules: { - Confirm: { - confirm: true - }, - Buttons: { - closer: false, - sticker: false - }, - History: { - history: false - }, - } - }); - notice.on('pnotify.confirm', function() { - self.disableAsset(selectElement); - }); - - return false; - } - - self.disableAsset(selectElement); - return false; - }); - - $('.js-wam-open-asset-settings').click(function() { - if( $(this).hasClass('js-wam-button--opened') ) { - self.closeAssetSettings($(this)); - return false; - } - - self.openAssetSettings($(this)); - return false; - }); - - $('.js-wam-reset-settings').click(function() { - self.setWarningForClearSettingsAction($(this)); - return false; - }); - } - - setWarningForClearSettingsAction(button) { - var notice = WamPnotify.notice({ - title: this.pluginVars.i18n.reset_settings_warning_title, - text: this.pluginVars.i18n.reset_settings_warning_text, - icon: 'fas fa-question-circle', - hide: false, - stack: { - 'dir1': 'down', - 'modal': true, - 'firstpos1': 25 - }, - modules: { - Confirm: { - confirm: true - }, - Buttons: { - closer: false, - sticker: false - }, - History: { - history: false - }, - } - }); - notice.on('pnotify.confirm', function() { - window.location.href = button.attr('href'); - }); - /*notice.on('pnotify.cancel', function() { - alert('Oh ok. Chicken, I see.'); - });*/ - } - - setDefaultCategoryTab() { - let tabHash = window.location.hash.replace('#', ''); - - tabHash && $('.js-wam-assets-type-tabs__button[data-type="' + tabHash + '"]').click(); - } - - switchCategoryTab(element) { - window.location.hash = '#' + element.data('type'); - - $('.js-wam-assets-type-tabs__button').removeClass('wam-assets-type-tab__active'); - element.addClass('wam-assets-type-tab__active'); - - $('.wam-assets-type-tab-content').removeClass('wam-assets-type-tab-content__active'); - $('#wam-assets-type-tab-content__' + element.data('type')).addClass('wam-assets-type-tab-content__active'); - } - - switchPluginTab(element) { - $('.js-wam-nav-plugins__tab-switch').removeClass('wam-nav-plugins__tab--active'); - element.addClass('wam-nav-plugins__tab--active'); - - $('.wam-nav-plugins__tab-content').removeClass('js-wam-nav-plugins__tab-content--active'); - $(element.find('a').attr('href')).addClass('js-wam-nav-plugins__tab-content--active'); - - $('.wam-table__th-plugins-settings').text(element.find('.wam-plugin-name').text()); - - } - - setSettingsButtonOpenState(buttonElement) { - buttonElement.removeClass('js-wam-button--opened'); - buttonElement.addClass('js-wam-button__icon--cogs').removeClass('js-wam-button__icon--close'); - } - - setSettingsButtonCloseState(buttonElement) { - buttonElement.addClass('js-wam-button--opened'); - buttonElement.removeClass('js-wam-button__icon--cogs').addClass('js-wam-button__icon--close'); - } - - disablePlugin(selectElement) { - let activeContainerElement = selectElement.closest('.js-wam-nav-plugins__tab-content--active'), - settingsButtonElement = selectElement.closest('.wam-plugin-settings__controls').find('.js-wam-open-plugin-settings'); - - /*if( currentContentTabElement.find('.js-wam-select-asset-load-mode option[value="disable"]:selected').length ) { - 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?"); - if( !passAction ) { - return; - } - }*/ - - /*var notice = PNotify.notice({ - title: 'Confirmation Needed', - text: 'Are you sure?', - icon: 'fas fa-question-circle', - hide: false, - stack: { - 'dir1': 'down', - 'modal': true, - 'firstpos1': 25 - }, - modules: { - Confirm: { - confirm: true - }, - Buttons: { - closer: false, - sticker: false - }, - History: { - history: false - }, - } -}); -notice.on('pnotify.confirm', function() { - alert('Ok, cool.'); -}); -notice.on('pnotify.cancel', function() { - alert('Oh ok. Chicken, I see.'); -});*/ - - settingsButtonElement.removeClass('js-wam-button--hidden'); - - selectElement.removeClass('js-wam-select--enable') - .addClass('js-wam-select--disable'); - - // Disable assets table - let assetSettingsContainer = activeContainerElement.find('.wam-table__asset-settings'); - assetSettingsContainer.addClass('js-wam-table__tr--disabled-section'); - //assetSettingsContainer.hide(); - - let assetConditionsContainer = activeContainerElement.find('.wam-table__asset-settings-conditions'); - assetConditionsContainer.hide(); - assetConditionsContainer.find(".wam-cleditor").remove(); - assetConditionsContainer.find(".wam-conditions-builder__settings").val(''); - - activeContainerElement.find('.js-wam-select-asset-load-mode').val('disable') - .removeClass('js-wam-select--enable') - .addClass('js-wam-select--disable') - .prop('disabled', true); - - activeContainerElement.find('.js-wam-open-asset-settings') - .removeClass('js-wam-button--opened') - .addClass('js-wam-button--hidden'); - - this.openPluginSettings(settingsButtonElement, "disable_plugin" === selectElement.val()); - this.updateStat(); - } - - enablePlugin(selectElement) { - let activeContainerElement = selectElement.closest('.js-wam-nav-plugins__tab-content--active'), - settingsButtonElement = selectElement.closest('.wam-plugin-settings__controls').find('.js-wam-open-plugin-settings'); - - settingsButtonElement.addClass('js-wam-button--hidden'); - - selectElement.removeClass('js-wam-select--disable') - .addClass('js-wam-select--enable'); - - // Enable assets table - activeContainerElement.find('.wam-table__asset-settings').removeClass('js-wam-table__tr--disabled-section'); - activeContainerElement.find('.js-wam-select-asset-load-mode').val('enable') - .addClass('js-wam-select--enable') - .removeClass('js-wam-select--disable') - .prop('disabled', false); - - activeContainerElement.find('.js-wam-open-asset-settings') - .addClass('js-wam-button--hidden'); - - this.closePluginSettings(settingsButtonElement, true); - this.updateStat(); - - } - - openPluginSettings(buttonElement) { - let containerElement = buttonElement.closest('.wam-plugin-settings'), - editorContainerElement = containerElement.find('.js-wam-plugin-settings__conditions'); - - this.setSettingsButtonCloseState(buttonElement); - editorContainerElement.show(); - if( !editorContainerElement.find('.wam-cleditor').length ) { - - this.createConditionsEditor(editorContainerElement, function(e) { - function a() { - let loadMode = containerElement.find('.js-wam-select-plugin-load-mode').val(); - - if( "disable_plugin" === loadMode ) { - e.element.addClass('wam-cleditor__disable-plugin-mode'); - } else { - e.element.removeClass('wam-cleditor__disable-plugin-mode'); - } - } - - containerElement.find('.js-wam-select-plugin-load-mode').change(function() { - a(); - }); - - a(); - }); - } - } - - closePluginSettings(buttonElement, destroyEditor = false) { - let containerElement = buttonElement.closest('.wam-plugin-settings'), - editorContainerElement = containerElement.find('.js-wam-plugin-settings__conditions'); - - if( destroyEditor ) { - this.destroyCoditionEditor(editorContainerElement); - } - - if( !buttonElement.hasClass('js-wam-button--opened') ) { - return false; - } - - this.setSettingsButtonOpenState(buttonElement); - editorContainerElement.hide(); - } - - disableAsset(selectElement) { - let containerElement = selectElement.closest('tr'), - settingsButtonElement = containerElement.find('.js-wam-open-asset-settings'); - - settingsButtonElement.removeClass('js-wam-button--hidden'); - containerElement.addClass('js-wam-table__tr--disabled-section'); - selectElement.removeClass('js-wam-select--enable').addClass('js-wam-select--disable'); - - this.openAssetSettings(settingsButtonElement); - this.updateStat(); - } - - enableAsset(selectElement) { - let containerElement = selectElement.closest('tr'), - settingsButtonElement = containerElement.find('.js-wam-open-asset-settings'); - - settingsButtonElement.addClass('js-wam-button--hidden'); - selectElement.removeClass('js-wam-select--disable').addClass('js-wam-select--enable'); - containerElement.removeClass('js-wam-table__tr--disabled-section'); - - this.closeAssetSettings(settingsButtonElement, true); - this.updateStat(); - } - - /** - * Toggle Asset Settings - * @param buttonElement Object settings button - * @returns {boolean} - */ - openAssetSettings(buttonElement) { - var placeID = buttonElement.closest('tr').attr('id'), - place = $('#' + placeID + '-conditions'); - - if( buttonElement.hasClass('js-wam-button--opened') ) { - return false; - } - - this.setSettingsButtonCloseState(buttonElement); - place.show(); - - if( !place.find('.wam-cleditor').length ) { - this.createConditionsEditor(place.find(".wam-asset-conditions-builder")); - } - - return true; - } - - closeAssetSettings(buttonElement, destroyEditor = false) { - var placeID = buttonElement.closest('tr').attr('id'), - place = $('#' + placeID + '-conditions'); - - if( destroyEditor ) { - this.destroyCoditionEditor(place.find(".wam-asset-conditions-builder")); - } - - if( !buttonElement.hasClass('js-wam-button--opened') ) { - return false; - } - - this.setSettingsButtonOpenState(buttonElement); - place.hide(); - - return true; - } - - saveSettings() { - var settings = { - save_mode: $('#js-wam-save-mode-checkbox').prop("checked"), - plugins: {}, - theme: {}, - misc: {} - }; - - $('.wam-nav-plugins__tab-content').each(function() { - let pluginGroupVisabilityConditionsElement = $(this).find('.js-wam-plugin-settings__conditions').find('.wam-conditions-builder__settings'), - pluginName = pluginGroupVisabilityConditionsElement.data('plugin-name'), - pluginGroupVisabilityConditionsVal = pluginGroupVisabilityConditionsElement.val(), - pluginGroupLoadMode = $('.js-wam-select-plugin-load-mode', $(this)).val(); - - if( pluginName ) { - if( !settings['plugins'][pluginName] ) { - settings['plugins'][pluginName] = {}; - } - settings['plugins'][pluginName]['load_mode'] = pluginGroupLoadMode; - settings['plugins'][pluginName]['visability'] = pluginGroupVisabilityConditionsVal; - } - - $('.wam-table__asset-settings', $(this)).each(function() { - let resourceType = $(this).data('resource-type'), - resourceHandle = $(this).data('resource-handle'); - - if( settings['plugins'][pluginName] ) { - if( !settings['plugins'][pluginName][resourceType] ) { - settings['plugins'][pluginName][resourceType] = {}; - } - if( !settings['plugins'][pluginName][resourceType][resourceHandle] ) { - settings['plugins'][pluginName][resourceType][resourceHandle] = {}; - } - - settings['plugins'][pluginName][resourceType][resourceHandle]['move_to_footer'] = $(this).find('.wam-checkbox__move-to-footer').prop('checked'); - } - }); - - $('.wam-table__asset-settings-conditions', $(this)).each(function() { - let resourceVisabilityConditionsElement = $(this).find('.wam-conditions-builder__settings'), - resourceVisabilityConditionsVal = resourceVisabilityConditionsElement.val(), - resourceType = resourceVisabilityConditionsElement.data('resource-type'), - resourceHandle = resourceVisabilityConditionsElement.data('resource-handle'); - - if( settings['plugins'][pluginName] ) { - if( !settings['plugins'][pluginName][resourceType] ) { - settings['plugins'][pluginName][resourceType] = {}; - } - if( !settings['plugins'][pluginName][resourceType][resourceHandle] ) { - settings['plugins'][pluginName][resourceType][resourceHandle] = {}; - } - - if( 'enable' !== pluginGroupLoadMode ) { - resourceVisabilityConditionsVal = ""; - } - - settings['plugins'][pluginName][resourceType][resourceHandle]['visability'] = resourceVisabilityConditionsVal; - } - }); - }); - - $('.wam-table__asset-settings', '#wam-assets-type-tab-content__theme,#wam-assets-type-tab-content__misc').each(function() { - let groupType = $(this).data('group-type'), - recourceType = $(this).data("resource-type"), - resourceHandle = $(this).data("resource-handle"); - - if( !settings[groupType] ) { - settings[groupType] = {}; - } - - if( !settings[groupType][recourceType] ) { - settings[groupType][recourceType] = {}; - } - - if( !settings[groupType][recourceType][resourceHandle] ) { - settings[groupType][recourceType][resourceHandle] = {}; - } - - settings[groupType][recourceType][resourceHandle]['move_to_footer'] = $(this).find('.wam-checkbox__move-to-footer').prop('checked'); - }); - - $('.wam-conditions-builder__settings', '#wam-assets-type-tab-content__theme,#wam-assets-type-tab-content__misc').each(function() { - let groupType = $(this).data('group-type'), - recourceType = $(this).data("resource-type"), - resourceHandle = $(this).data("resource-handle"); - - if( !settings[groupType] ) { - settings[groupType] = {}; - } - - if( !settings[groupType][recourceType] ) { - settings[groupType][recourceType] = {}; - } - - if( !settings[groupType][recourceType][resourceHandle] ) { - settings[groupType][recourceType][resourceHandle] = {}; - } - - settings[groupType][recourceType][resourceHandle]['visability'] = $(this).val(); - }); - - let stackBottomRight = { - 'dir1': 'up', - 'dir2': 'left', - 'firstpos1': 25, - 'firstpos2': 25 - }; - - WamPnotify.closeAll(); - WamPnotify.alert({ - title: 'Saving settings!', - text: 'Please wait, saving settings ...', - stack: stackBottomRight, - hide: false - }); - - $.ajax(this.pluginVars.ajaxurl, { - type: 'post', - dataType: 'json', - data: { - action: 'wam-save-settings', - scope: this.pluginVars.scope, - settings: settings, - _wpnonce: $('#wam-save-button').data('nonce') - }, - success: function(response) { - WamPnotify.closeAll(); - - if( !response || !response.success ) { - if( response.data ) { - WamPnotify.alert({ - title: response.data.error_message_title, - text: response.data.error_message_content, - stack: stackBottomRight, - type: 'error', - delay: 15000, - hide: true - }); - } else { - console.log(response); - } - return; - } - if( response.data ) { - WamPnotify.alert({ - title: response.data.save_massage_title, - text: response.data.save_message_content, - stack: stackBottomRight, - type: 'success', - delay: 3000, - hide: true - }); - } - }, - error: function(xhr, ajaxOptions, thrownError) { - WamPnotify.alert({ - title: 'Unknown error', - text: thrownError, - stack: { - 'dir1': 'up', - 'dir2': 'left', - 'firstpos1': 25, - 'firstpos2': 25 - }, - type: 'error', - delay: 15000, - hide: true - }); - } - }); - } - - createConditionsEditor(element, callback = null) { - element.wamConditionsEditor({ - // where to get an editor template - templateSelector: '#wam-conditions-builder-template', - // where to put editor options - saveInputSelector: '.wam-conditions-builder__settings', - groups: [ - { - "type": "group", - "conditions": [ - { - "param": "current-url", - "operator": "equals", - "type": "default", - "value": this.getCurrentUrl() - } - - ] - } - - ], - callback: callback - }); - } - - /** - * Get current url - * - * if it is the admin area url would be with query string - * - * @returns {jQuery|*|*} - */ - getCurrentUrl() { - let path = $(location).attr('pathname'), - queryString = $(location).attr('search'); - - if( "admin" === this.pluginVars.scope || "networkadmin" === this.pluginVars.scope ) { - return path + queryString.replace(/[?&]{1}wbcr_assets_manager=1/g, ''); - } - - return path; - } - - destroyCoditionEditor(element) { - element.find('.wam-cleditor').remove(); - element.find('.wam-conditions-builder__settings').val(''); - } - - updateStat() { - let total_requests = 0, - total_size = 0, - optimized_size = 0, - disabled_js = 0, - disabled_css = 0; - - $('.js-wam-asset').each(function() { - let size = $(this).data('size'); - - if( !$.isNumeric(size) ) { - return; - } - - total_requests++; - total_size = total_size + size; - - if( !$(this).hasClass('js-wam-table__tr--disabled-section') ) { - optimized_size = optimized_size + size; - } else { - if( $(this).hasClass('js-wam-js-asset') ) { - disabled_js++; - } - if( $(this).hasClass('js-wam-css-asset') ) { - disabled_css++; - } - } - }); - - $('.wam-float-panel__data-item.__info-request').find('.wam-float-panel__item_value').html(total_requests); - $('.wam-float-panel__data-item.__info-total-size').find('.wam-float-panel__item_value').html(Math.round(total_size) + ' KB'); - $('.wam-float-panel__data-item.__info-reduced-total-size').find('.wam-float-panel__item_value').html(Math.round(optimized_size) + ' KB'); - $('.wam-float-panel__data-item.__info-disabled-js').find('.wam-float-panel__item_value').html(disabled_js); - $('.wam-float-panel__data-item.__info-disabled-css').find('.wam-float-panel__item_value').html(disabled_css); - } - - } - - $(function() { - new AssetsManager(); - }); - -})(jQuery); diff --git a/wp-content/plugins/!clearfy/components/assets-manager/clearfy.php b/wp-content/plugins/!clearfy/components/assets-manager/clearfy.php deleted file mode 100644 index 418e181b..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/clearfy.php +++ /dev/null @@ -1,54 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( ! defined( 'WGZ_PLUGIN_ACTIVE' ) ) { - define( 'WGZ_PLUGIN_VERSION', '2.1.9' ); - define( 'WGZ_TEXT_DOMAIN', 'gonzales' ); - define( 'WGZ_PLUGIN_ACTIVE', true ); - - // Этот плагин загружен, как аддон для плагина Clearfy - define( 'LOADING_ASSETS_MANAGER_AS_ADDON', true ); - - if ( ! defined( 'WGZ_PLUGIN_DIR' ) ) { - define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) ); - } - - if ( ! defined( 'WGZ_PLUGIN_BASE' ) ) { - define( 'WGZ_PLUGIN_BASE', plugin_basename( __FILE__ ) ); - } - - if ( ! defined( 'WGZ_PLUGIN_URL' ) ) { - define( 'WGZ_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - } - - try { - // Global scripts - require_once( WGZ_PLUGIN_DIR . '/includes/functions.php' ); - require_once( WGZ_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' ); - - new WGZ_Plugin(); - } catch( Exception $e ) { - $wgnz_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Assets Manager', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wgnz_plugin_error_func ); - add_action( 'network_admin_notices', $wgnz_plugin_error_func ); - } -} - - diff --git a/wp-content/plugins/!clearfy/components/assets-manager/gonzales.php b/wp-content/plugins/!clearfy/components/assets-manager/gonzales.php deleted file mode 100644 index 29bf633a..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/gonzales.php +++ /dev/null @@ -1,138 +0,0 @@ - - * Version: 2.1.9 - * Text Domain: gonzales - * Domain Path: /languages/ - * Author URI: https://webcraftic.com - * Framework Version: FACTORY_480_VERSION - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Developers who contributions in the development plugin: - * - * Alexander Kovalev - * --------------------------------------------------------------------------------- - * Full plugin development. - * - * Email: alex.kovalevv@gmail.com - * Personal card: https://alexkovalevv.github.io - * Personal repo: https://github.com/alexkovalevv - * --------------------------------------------------------------------------------- - */ - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' ); - -// @formatter:off -$wgnz_plugin_info = [ - 'prefix' => 'wbcr_gnz_', - 'plugin_name' => 'wbcr_gonzales', - 'plugin_title' => 'Webcraftic assets manager', - - // PLUGIN SUPPORT - 'support_details' => [ - 'url' => 'https://clearfy.pro', - 'pages_map' => [ - 'support' => 'support', // {site}/support - 'docs' => 'docs' // {site}/docs - ] - ], - - // PLUGIN SUBSCRIBE FORM - 'subscribe_widget' => true, - 'subscribe_settings' => [ 'group_id' => '105408913' ], - - // PLUGIN ADVERTS - 'render_adverts' => true, - 'adverts_settings' => [ - 'dashboard_widget' => true, // show dashboard widget (default: false) - 'right_sidebar' => true, // show adverts sidebar (default: false) - 'notice' => true, // show notice message (default: false) - ], - - // FRAMEWORK MODULES - 'load_factory_modules' => [ - [ 'libs/factory/bootstrap', 'factory_bootstrap_482', 'admin' ], - [ 'libs/factory/forms', 'factory_forms_480', 'admin' ], - [ 'libs/factory/pages', 'factory_pages_480', 'admin' ], - [ 'libs/factory/templates', 'factory_templates_134', 'all' ], - [ 'libs/factory/adverts', 'factory_adverts_159', 'admin' ] - ] -]; - -$wgnz_compatibility = new Wbcr_Factory480_Requirements( __FILE__, array_merge( $wgnz_plugin_info, [ - 'plugin_already_activate' => defined( 'WGZ_PLUGIN_ACTIVE' ), - 'required_php_version' => '7.0', - 'required_wp_version' => '4.2.0', - 'required_clearfy_check_component' => false -] ) ); - -/** - * If the plugin is compatible, then it will continue its work, otherwise it will be stopped, - * and the user will throw a warning. - */ -if ( ! $wgnz_compatibility->check() ) { - return; -} - -/** - * ----------------------------------------------------------------------------- - * CONSTANTS - * Install frequently used constants and constants for debugging, which will be - * removed after compiling the plugin. - * ----------------------------------------------------------------------------- - */ - -// This plugin is activated -define( 'WGZ_PLUGIN_ACTIVE', true ); -define( 'WGZ_PLUGIN_VERSION', $wgnz_compatibility->get_plugin_version() ); -define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) ); -define( 'WGZ_PLUGIN_BASE', plugin_basename( __FILE__ ) ); -define( 'WGZ_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - - - -/** - * ----------------------------------------------------------------------------- - * PLUGIN INIT - * ----------------------------------------------------------------------------- - */ - -require_once( WGZ_PLUGIN_DIR . '/libs/factory/core/boot.php' ); -require_once( WGZ_PLUGIN_DIR . '/includes/functions.php' ); -require_once( WGZ_PLUGIN_DIR . '/includes/class-plugin.php' ); - -try { - new WGZ_Plugin( __FILE__, array_merge( $wgnz_plugin_info, [ - 'plugin_version' => WGZ_PLUGIN_VERSION, - 'plugin_text_domain' => $wgnz_compatibility->get_text_domain(), - ] ) ); -} catch ( Exception $e ) { - // Plugin wasn't initialized due to an error - define( 'WGZ_PLUGIN_THROW_ERROR', true ); - - $wgnz_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Assets Manager', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wgnz_plugin_error_func ); - add_action( 'network_admin_notices', $wgnz_plugin_error_func ); -} -// @formatter:on diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/3rd-party/class-clearfy-plugin.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/3rd-party/class-clearfy-plugin.php deleted file mode 100644 index f416e4d8..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/3rd-party/class-clearfy-plugin.php +++ /dev/null @@ -1,105 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WGZ_Plugin { - - /** - * @see self::app() - * @var WCL_Plugin - */ - private static $app; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct() { - if ( ! class_exists( 'WCL_Plugin' ) ) { - throw new Exception( 'Plugin Clearfy is not installed!' ); - } - - self::$app = WCL_Plugin::app(); - - $this->global_scripts(); - - if ( is_admin() ) { - require( WGZ_PLUGIN_DIR . '/admin/boot.php' ); - } - - add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] ); - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return WCL_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @throws \Exception - */ - public function plugins_loaded() { - - } - - /** - * Регистрирует классы страниц в плагине - * - * Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин - * выполнил подключение классов страниц. После регистрации, страницы будут доступные по url - * и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином - * все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину. - * - * @author Alexander Kovalev - * @throws \Exception - */ - private function register_pages() { - $admin_path = WGZ_PLUGIN_DIR . '/admin/pages'; - - self::app()->registerPage( 'WGZ_AssetsManagerPage', $admin_path . '/class-pages-settings.php' ); - } - - /** - * @author Alexander Kovalev - * @since 1.1.0 - */ - private function global_scripts() { - require_once( WGZ_PLUGIN_DIR . '/includes/classes/class-views.php' ); - require_once WGZ_PLUGIN_DIR . '/includes/classes/class-assets-manager-global.php'; - - new WGZ_Assets_Manager_Public( self::$app ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/class-plugin.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/class-plugin.php deleted file mode 100644 index a654d030..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/class-plugin.php +++ /dev/null @@ -1,104 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 19.02.2018, Webcraftic - * @version 1.0 - */ -class WGZ_Plugin extends Wbcr_Factory480_Plugin { - - /** - * @see self::app() - * @var Wbcr_Factory480_Plugin - */ - private static $app; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct( $plugin_path, $data ) { - parent::__construct( $plugin_path, $data ); - self::$app = $this; - - $this->global_scripts(); - - if ( is_admin() ) { - $this->init_activation(); - require( WGZ_PLUGIN_DIR . '/admin/boot.php' ); - } - - add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] ); - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return \Wbcr_Factory480_Plugin|\WGZ_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @throws \Exception - */ - public function plugins_loaded() { - - } - - protected function init_activation() { - include_once( WGZ_PLUGIN_DIR . '/admin/activation.php' ); - self::app()->registerActivation( 'WGNZ_Activation' ); - } - - /** - * Регистрирует классы страниц в плагине - * - * Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин - * выполнил подключение классов страниц. После регистрации, страницы будут доступные по url - * и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином - * все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину. - * - * @author Alexander Kovalev - * @throws \Exception - */ - private function register_pages() { - $admin_path = WGZ_PLUGIN_DIR . '/admin/pages'; - self::app()->registerPage( 'WGZ_AssetsManagerPage', $admin_path . '/class-pages-settings.php' ); - self::app()->registerPage( 'WGZ_MoreFeaturesPage', $admin_path . '/class-pages-more-features.php' ); - } - - private function global_scripts() { - require_once( WGZ_PLUGIN_DIR . '/includes/classes/class-views.php' ); - require_once WGZ_PLUGIN_DIR . '/includes/classes/class-assets-manager-global.php'; - - new WGZ_Assets_Manager_Public( self::$app ); - } -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-assets-manager-global.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-assets-manager-global.php deleted file mode 100644 index 8fefca61..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-assets-manager-global.php +++ /dev/null @@ -1,1540 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 05.11.2017, Webcraftic - * @version 1.0 - */ -class WGZ_Assets_Manager_Public { - - /** - * Stores list of all available assets (used in rendering panel) - * - * @var array - */ - public $collection = []; - - public $template_rendered = false; - - protected $plugin; - - private $deregistered = []; - - /** - * @param Wbcr_Factory480_Plugin $plugin - */ - public function __construct(Wbcr_Factory480_Plugin $plugin) - { - $this->plugin = $plugin; - - $this->register_hooks(); - } - - /** - * Check user permissions - * - * User must have administrator or super administrator permissions to use the plugin. - * - * @return bool - * @since 1.1.0 - * @author Alexander Kovalev - */ - protected function is_user_can() - { - return current_user_can('manage_options') || current_user_can('manage_network'); - } - - /** - * Initilize entire machine - */ - protected function register_hooks() - { - if( $this->plugin->getPopulateOption('disable_assets_manager', false) ) { - return; - } - - add_action('wp_enqueue_scripts', function () { - $settings = $this->get_settings(); - - foreach($settings as $key => $group) { - if( "plugins" === $key ) { - foreach($group as $plugin) { - if( isset($plugin['js']) ) { - $this->move_to_footer_js($plugin['js']); - } - if( isset($plugin['css']) ) { - $this->move_to_footer_css($plugin['css']); - } - } - } else if( in_array($key, ['misc', 'theme']) ) { - if( isset($group['js']) ) { - $this->move_to_footer_js($group['js']); - } - if( isset($group['css']) ) { - $this->move_to_footer_css($group['css']); - } - } - } - }, 999); - - add_action('get_footer', function () { - foreach($this->deregistered as $style) { - wp_enqueue_style($style->handle); - } - }); - - $on_frontend = $this->plugin->getPopulateOption('disable_assets_manager_on_front'); - $on_backend = $this->plugin->getPopulateOption('disable_assets_manager_on_backend', true); - $is_panel = $this->plugin->getPopulateOption('disable_assets_manager_panel'); - - if( (!is_admin() && !$on_frontend) || (is_admin() && !$on_backend) ) { - add_filter('script_loader_src', [$this, 'filter_load_assets'], 10, 2); - add_filter('style_loader_src', [$this, 'filter_load_assets'], 10, 2); - } - - if( !$is_panel && ((is_admin() && !$on_backend) || (!is_admin() && !$on_frontend)) ) { - if( !is_admin() ) { - add_action('wp_enqueue_scripts', [$this, 'enqueue_plugin_scripts'], -100001); - add_action('wp_footer', [$this, 'assets_manager_render_template'], 100001); - } else { - add_action('admin_enqueue_scripts', [$this, 'enqueue_plugin_scripts'], -100001); - add_action('admin_footer', [$this, 'assets_manager_render_template'], 100001); - } - - add_action('wam/views/safe_mode_checkbox', [$this, 'print_save_mode_fake_checkbox']); - add_action('wam/views/assets/handle_column/after_url', [$this, 'print_move_to_footer_fake_checkbox']); - } - - if( !is_admin() && !$on_frontend ) { - add_action('wp_head', [$this, 'collect_assets'], 10000); - add_action('wp_footer', [$this, 'collect_assets'], 10000); - } - - if( is_admin() && !$on_backend ) { - add_action('admin_head', [$this, 'collect_assets'], 10000); - add_action('admin_footer', [$this, 'collect_assets'], 10000); - } - - if( !$is_panel && ((is_admin() && !$on_backend) || (!is_admin() && !$on_frontend)) ) { - if( defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) { - add_action('wbcr/clearfy/adminbar_menu_items', [$this, 'clearfy_admin_bar_menu_filter']); - } else { - add_action('admin_bar_menu', [$this, 'assets_manager_add_admin_bar_menu'], 1000); - } - } - - # Reset plugin settings and clean source code - //add_action( 'template_redirect', [ $this, 'redirects' ], 9999 ); - add_action('init', [$this, 'redirects'], 9999); - - ##Login/Logout - add_action('wp_login', [$this, 'user_logged_in'], 99, 2); - add_action('wp_logout', [$this, 'user_logged_out']); - - // Stop optimizing scripts and caching the asset manager page. - //add_action( 'plugins_loaded', [ $this, 'stop_caching_and_script_optimize' ] ); - $this->stop_caching_and_script_optimize(); - - // Disable autoptimize on Assets manager page - add_filter('autoptimize_filter_noptimize', [$this, 'autoptimize_noptimize'], 10, 1); - add_filter('wmac_filter_noptimize', [$this, 'autoptimize_noptimize'], 10, 1); - - if( wp_doing_ajax() ) { - require_once WGZ_PLUGIN_DIR . '/admin/ajax/save-settings.php'; - } - } - - - protected function move_to_footer_css($css) - { - $wp_styles = wp_styles(); - - if( !empty($css) ) { - foreach((array)$css as $css_handler => $css) { - if( isset($css['move_to_footer']) && "true" === $css['move_to_footer'] ) { - if( $style = $wp_styles->query($css_handler, 'registered') ) { - wp_dequeue_style($css_handler); - //wp_deregister_style($css_handler); - $this->deregistered[$css_handler] = $style; - } - - // A hack to avoid tons of warnings the first time we calculate things. - $wp_styles->groups[$css_handler] = 1; - } - } - } - } - - protected function move_to_footer_js($js) - { - $wp_scripts = wp_scripts(); - - if( !empty($js) ) { - foreach((array)$js as $js_handler => $js) { - if( isset($js['move_to_footer']) && "true" === $js['move_to_footer'] ) { - if( $script = $wp_scripts->query($js_handler, 'registered') ) { - wp_deregister_script($js_handler); - wp_register_script($script->handle, $script->src, $script->deps, $script->ver, true); - } - } - } - } - } - - - /** - * Render a fake checkbox to show for user, it is pro feature. - * - * @param array $data Temlate data - * @since 1.1 - * - * @author Alexander Kovalev - */ - public function print_save_mode_fake_checkbox($data) - { - if( defined('WGZP_PLUGIN_ACTIVE') ) { - return; - } - ?> - - - */ - public function print_move_to_footer_fake_checkbox($item) - { - if( defined('WGZP_PLUGIN_ACTIVE') ) { - return; - } - ?> -
      - -
      - - * @since 2.0.0 - * - */ - public function user_logged_in($login, $user = null) - { - if( is_null($user) ) { - $user = wp_get_current_user(); - } - - foreach($user->roles as $key => $role) { - setcookie('wam_assigned_roles[' . $key . ']', $role, 0, "/"); - } - } - - /** - * Delete cookie with user roles when user logged out - * - * @author Alexander Kovalev - * @since 2.0.0 - */ - public function user_logged_out() - { - if( isset($_COOKIE['wam_assigned_roles']) && is_array($_COOKIE['wam_assigned_roles']) ) { - foreach($_COOKIE['wam_assigned_roles'] as $key => $cookie_val) { - setcookie('wam_assigned_roles[' . $key . ']', '', time() - 999999, "/"); - } - } - } - - /** - * Stop optimizing scripts and caching the asset manager page. - * - * For some types of pages it is imperative to not be cached. Think of an e-commerce scenario: - * when a customer enters checkout, they wouldn’t want to see a cached page with some previous - * customer’s payment data. - * - * Elaborate plugins like WooCommerce (and many others) use the DONOTCACHEPAGE constant to let - * caching plugins know about certain pages or endpoints that should not be cached in any case. - * Accordingly, all popular caching plugins, including WP Rocket, support the constant and would - * not cache a request for which DONOTCACHEPAGE is defined as true. - * - * @author Alexander Kovalev - * @since 1.0.8 - */ - public function stop_caching_and_script_optimize() - { - if( !isset($_GET['wbcr_assets_manager']) ) { - return; - } - - if( !defined('DONOTCACHEPAGE') ) { - define('DONOTCACHEPAGE', true); - } - - if( !defined('DONOTCACHCEOBJECT') ) { - define('DONOTCACHCEOBJECT', true); - } - - if( !defined('DONOTMINIFY') ) { - define('DONOTMINIFY', true); - } - - if( !defined('DONOTROCKETOPTIMIZE') ) { - define('DONOTROCKETOPTIMIZE', true); - } - - if( !defined('DONOTMINIFYJS') ) { - define('DONOTMINIFYJS', true); - } - - if( !defined('DONOTASYNCCSS') ) { - define('DONOTASYNCCSS', true); - } - - if( !defined('DONOTMINIFYCSS') ) { - define('DONOTMINIFYCSS', true); - } - - if( !defined('WHM_DO_NOT_HIDE_WP') ) { - define('WHM_DO_NOT_HIDE_WP', true); - } - } - - /** - * Disable autoptimize on Assets manager page - * - * @return bool - * @since 1.0.8 - * @author Alexander Kovalev - */ - public function autoptimize_noptimize($result) - { - if( !isset($_GET['wbcr_assets_manager']) ) { - return $result; - } - - return true; - } - - /** - * Adds two actions "Reset options" and "Clean source code" - * - * The method will call in init action. - * - * @author Alexander Kovalev - * @since 1.1.0 - */ - public function redirects() - { - if( !isset($_GET['wbcr_assets_manager']) || (defined('DOING_AJAX') && DOING_AJAX) ) { - return; - } - - $this->reset_plugin_settings_redirect(); - $this->clean_source_code(); - } - - /** - * Adds a link in Clearfy admin bar menu to go to the Assets manager - * - * @param array $menu_items Array links of Clearfy menu - * - * @return mixed - * @author Alexander Kovalev - * @since 1.1.0 - * - */ - public function clearfy_admin_bar_menu_filter($menu_items) - { - $current_url = esc_url(add_query_arg(['wbcr_assets_manager' => 1])); - - $menu_items['assets_manager_render_template'] = [ - 'title' => ' ' . __('Assets Manager', 'gonzales'), - 'href' => $current_url - ]; - - return $menu_items; - } - - /** - * Add Assets Manager menu to admin bar. - * - * @param WP_Admin_Bar $wp_admin_bar - * @since 1.1.0 - * - * @author Alexander Kovalev - */ - public function assets_manager_add_admin_bar_menu($wp_admin_bar) - { - $current_url = esc_url(add_query_arg(['wbcr_assets_manager' => 1])); - - $args = [ - 'id' => 'assets_manager_render_template', - 'title' => __('Assets Manager', 'gonzales'), - 'href' => $current_url - ]; - $wp_admin_bar->add_node($args); - } - - /** - * Render Assets Manager view in the page body. - * - * This is callback function for admin_footer and wp_footer hooks. - * - * @throws \Exception - * @since 2.0.0 - * @author Alexander Kovalev - */ - public function assets_manager_render_template() - { - if( !$this->is_user_can() || !isset($_GET['wbcr_assets_manager']) || $this->template_rendered ) { - return; - } - - $this->template_rendered = true; - - $settings = $this->get_settings(); - - $views = new WGZ_Views(WGZ_PLUGIN_DIR); - $views->print_template('assets-manager', [ - 'save_mode' => isset($settings['save_mode']) ? (bool)$settings['save_mode'] : false, - 'collection' => $this->collection, - 'loaded_plugins' => $this->get_loaded_plugins(), - 'theme_assets' => $this->get_collected_assets('theme'), - 'misc_assets' => $this->get_collected_assets('misc'), - 'conditions_logic_params' => $this->get_conditions_login_params(true), - 'settings' => $settings - ]); - - $this->print_plugin_scripts(); - } - - /** - * Filter loaded assets by user conditions. - * - * If enabled save mode or onened Assets Manager panel, assets will not be filtered. * - * - * @param string $src - * @param string $handle - * - * @return bool - * @throws \Exception - * @author Alexander Kovalev - * @since 2.0.0 - * - */ - public function filter_load_assets($src, $handle) - { - $settings = $this->get_settings(); - - if( isset($_GET['wbcr_assets_manager']) || empty($settings) || (true === $settings['save_mode'] && !$this->is_user_can()) ) { - return $src; - } - - require_once WGZ_PLUGIN_DIR . '/includes/classes/class-check-conditions.php'; - - $resource_type = (current_filter() == 'script_loader_src') ? 'js' : 'css'; - $resource_visability = ""; - - if( !empty($settings['plugins']) ) { - foreach((array)$settings['plugins'] as $plugin_name => $plugin) { - if( !empty($plugin[$resource_type]) && isset($plugin[$resource_type][$handle]) ) { - if( 'disable_assets' === $plugin['load_mode'] ) { - $resource_visability = $plugin['visability']; - } else if( 'disable_plugin' === $plugin['load_mode'] ) { - return $src; - } else { - $resource_visability = $plugin[$resource_type][$handle]['visability']; - } - break; - } - } - } - - foreach(['theme', 'misc'] as $group_name) { - if( !empty($settings[$group_name]) && !empty($settings[$group_name][$resource_type]) && isset($settings[$group_name][$resource_type][$handle]) ) { - $resource_visability = $settings[$group_name][$resource_type][$handle]['visability']; - break; - } - } - - if( !empty($resource_visability) ) { - $condition = new WGZ_Check_Conditions($resource_visability); - if( $condition->validate() ) { - return false; - } - } - - return $src; - } - - /** - * Get information regarding used assets - * - * @return bool - */ - public function collect_assets() - { - if( !isset($_GET['wbcr_assets_manager']) || (defined('DOING_AJAX') && DOING_AJAX) ) { - return false; - } - - $denied = [ - 'js' => ['wam-assets-manager', 'wam-assets-conditions', 'admin-bar', 'wam-pnotify'], - 'css' => [ - 'wam-pnotify', - 'wbcr-clearfy-adminbar-styles', - 'wam-assets-conditions', - 'wam-assets-manager', - 'admin-bar', - 'dashicons' - ], - ]; - $denied = apply_filters('wbcr_gnz_denied_assets', $denied); - - /** - * Imitate full untouched list without dequeued assets - * Appends part of original table. Safe approach. - */ - $data_assets = [ - 'js' => wp_scripts(), - 'css' => wp_styles(), - ]; - - foreach($data_assets as $type => $data) { - foreach($data->done as $el) { - if( isset($data->registered[$el]) ) { - - if( !in_array($el, $denied[$type]) ) { - if( isset($data->registered[$el]->src) ) { - $url = $this->prepare_url($data->registered[$el]->src); - $url_short = str_replace(get_home_url(), '', $url); - - if( false !== strpos($url, get_theme_root_uri()) ) { - $resource_type = 'theme'; - } else if( false !== strpos($url, plugins_url()) ) { - $resource_type = 'plugins'; - } else { - $resource_type = 'misc'; - } - - $collection = &$this->collection[$resource_type]; - - if( 'plugins' == $resource_type ) { - $clean_url = str_replace(WP_PLUGIN_URL . '/', '', $url); - $url_parts = explode('/', $clean_url); - $resource_name = !empty($url_parts[0]) ? $url_parts[0] : null; - - if( empty($resource_name) ) { - continue; - } - $collection = &$this->collection[$resource_type][$resource_name]; - } - - if( !isset($collection[$type][$el]) ) { - $collection[$type][$el] = [ - 'url_full' => $url, - 'url_short' => $url_short, - //'state' => $this->get_visibility($type, $el), - 'size' => $this->get_asset_size($url), - 'ver' => $data->registered[$el]->ver, - 'deps' => (isset($data->registered[$el]->deps) ? $data->registered[$el]->deps : []), - ]; - - # Deregister scripts, styles so that they do not conflict with assets managers. - # ------------------------------------------------ - $no_js = [ - 'jquery', - 'jquery-core', - 'jquery-migrate', - 'jquery-ui-core', - 'wam-jquery-core', - 'wam-jquery-migrate' - ]; - - if( "js" == $type && !in_array($el, $no_js) ) { - wp_deregister_script($el); - } - - if( "css" == $type ) { - wp_deregister_style($el); - } - #------------------------------------------------- - } - } - } - } - } - } - - return false; - } - - /** - * Enqueue scripts and styles of the plugin - * - * @author Alexander Kovalev - * @since 2.0.0 - */ - public function enqueue_plugin_scripts() - { - if( $this->is_user_can() && isset($_GET['wbcr_assets_manager']) ) { - $plugin_ver = $this->plugin->getPluginVersion(); - - wp_enqueue_style('wam-assets-manager', WGZ_PLUGIN_URL . '/assets/css/assets-manager.css', [], $plugin_ver); - wp_enqueue_style('wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/css/assets-conditions.css', [], $plugin_ver); - wp_enqueue_style('wam-pnotify', WGZ_PLUGIN_URL . '/assets/css/PNotifyBrightTheme.css', [], $plugin_ver); - } - } - - /** - * Hardcode? Because, other plugins disable scripts or manipulate them. - * - * @author Alexander Kovalev - * @since 2.0.0 - */ - public function print_plugin_scripts() - { - $scope = 'frontend'; - - if( $this->plugin->isNetworkActive() && $this->plugin->isNetworkAdmin() ) { - $scope = 'networkadmin'; - } else if( is_admin() ) { - $scope = 'admin'; - } - ?> - - - - - - - - - - * @since 1.0.8 - */ - private function clean_source_code() - { - ob_start(function ($html) { - - $raw_html = $html; - - $html = preg_replace([ - "'<\s*style.*?<\s*/\s*style\s*>'is", - ], [ - "" - ], $html); - - $html = preg_replace_callback([ - "'<\s*link.*?>'is", - ], function ($matches) { - $doc = new DOMDocument(); - $doc->loadHTML($matches[0]); - $imageTags = $doc->getElementsByTagName('link'); - - foreach($imageTags as $tag) { - $src = $tag->getAttribute('href'); - - $white_list_js = [ - 'wp-includes/css/dashicons.min.css', - 'wp-includes/css/admin-bar.min.css', - 'assets/css/assets-manager.css', - 'assets/css/assets-conditions.css', - 'clearfy/assets/css/admin-bar.css', - 'assets/css/PNotifyBrightTheme.css' - ]; - - if( !empty($src) ) { - foreach($white_list_js as $js) { - if( false !== strpos($src, $js) ) { - return $matches[0]; - } - } - } - - return ''; - } - }, $html); - - $html = preg_replace_callback([ - "'<\s*script.*?<\s*\/\s*script\s*>'is", - ], function ($matches) { - if( false !== strpos($matches[0], 'wam_localize_data') ) { - return $matches[0]; - } - if( false !== strpos($matches[0], 'wam-conditions-builder-template') ) { - return $matches[0]; - } - - $doc = new DOMDocument(); - $doc->loadHTML($matches[0]); - $imageTags = $doc->getElementsByTagName('script'); - - foreach($imageTags as $tag) { - $src = $tag->getAttribute('src'); - - $white_list_js = [ - 'wam-jquery.js', - 'wam-jquery-migrate.min.js', - 'wp-includes/js/admin-bar.min.js', - // -- - 'assets/js/wam-assets-manager.js', - 'assets/js/wam-assets-manager-pro.js', - 'assets/js/wam-assets-conditions.js', - // -- - 'assets/js/libs/wam-pnotify.js', - 'assets/js/libs/wam-pnotify-confirm.js', - 'assets/js/libs/wam-pnotify-history.js', - - ]; - - if( !empty($src) ) { - foreach($white_list_js as $js) { - if( false !== strpos($src, $js) ) { - return $matches[0]; - } - } - } - - return ''; - } - //return $matches[0]; - }, $html); - - if( empty($html) ) { - return $raw_html; - } - - return $html; - }); - } - - /** - * If exists GET var, the method make redirect to Assets Manager - * - * Before redirecting, the method will clear some options to completely reset settings. - * - * @author Alexander Kovalev - * @since 2.0.0 - */ - private function reset_plugin_settings_redirect() - { - // Reset settings - if( isset($_GET['wbcr_assets_manager']) && isset($_GET['wam_reset_settings']) ) { - check_admin_referer('wam_reset_settings'); - $this->plugin->updateOption('assets_states', []); - $this->plugin->updateOption('backend_assets_states', []); - - if( $this->plugin->isNetworkActive() ) { - $this->plugin->updateNetworkOption('backend_assets_states', []); - } - - wp_redirect(esc_url_raw(remove_query_arg(['wam_reset_settings', '_wpnonce']))); - die(); - } - } - - /** - * @param string $type - * - * @return array - * @throws \Exception - * @since 2.0.0 - * - * @author Alexander Kovalev - */ - private function get_collected_assets($type) - { - $assets = []; - - if( empty($this->collection) ) { - return $assets; - } - - foreach((array)$this->collection as $resource_type => $resources) { - if( $type == $resource_type ) { - $assets = $this->get_parsed_asset_settings($resources, $resource_type); - } - } - - return $assets; - } - - private function get_asset_requires($handle) - { - $requires = []; - - if( empty($this->collection) ) { - return $requires; - } - - foreach((array)$this->collection as $resource_type => $resources) { - if( empty($resources) ) { - continue; - } - - if( 'plugins' == $resource_type ) { - foreach((array)$resources as $plugin_name => $plugin_types) { - if( !empty($plugin_types) ) { - foreach((array)$plugin_types as $plugin_type_name => $plugin_resources) { - foreach((array)$plugin_resources as $plugin_resource_name => $plugin_resource) { - if( !empty($plugin_resource['deps']) && in_array($handle, $plugin_resource['deps']) ) { - $requires[] = '' . esc_attr($plugin_resource_name) . ''; - } - } - } - } - } - } else { - foreach((array)$resources as $other_type_name => $other_resources) { - foreach((array)$other_resources as $other_resource_name => $other_resource) { - if( !empty($other_resource['deps']) && in_array($handle, $other_resource['deps']) ) { - $requires[] = '' . esc_attr($other_resource_name) . ''; - } - } - } - } - } - - return $requires; - } - - /** - * Позволяет получить список плагинов, которые загружаются на странице - * - * Каждый элемент списка имеет собственные настройки, которые будут - * переданы в шаблон для печати. - * - * @return array - * @throws \Exception - * @since 2.0.0 - */ - private function get_loaded_plugins() - { - $plugins = []; - - if( empty($this->collection) ) { - return $plugins; - } - - foreach((array)$this->collection as $resource_type => $resources) { - foreach($resources as $resource_name => $types) { - if( 'plugins' == $resource_type && !empty($resource_name) ) { - $plugins[$resource_name]['name'] = $resource_name; - $plugins[$resource_name]['info'] = $this->get_plugin_data($resource_name); - $plugins[$resource_name]['assets'] = $this->get_parsed_asset_settings($types, 'plugins', $resource_name); - $plugins[$resource_name]['load_mode'] = $this->get_parsed_plugin_settings($resource_name, 'load_mode'); - $plugins[$resource_name]['visability'] = $this->get_parsed_plugin_settings($resource_name, 'visability'); - $plugins[$resource_name]['select_control_classes'] = $this->get_parsed_plugin_settings($resource_name, 'select_control_classes'); - $plugins[$resource_name]['settings_button_classes'] = $this->get_parsed_plugin_settings($resource_name, 'settings_button_classes'); - } - } - } - - return $plugins; - } - - /** - * Подготовка настроек плагина к выводу в шаблоне - * - * Устанавливаем ключи и значения по умолчанию или берем сохраненные - * значения из базы данных. Тем самым мы гарантируем, что в шаблоне - * всегда будет существовать используемый элемент массива из настроек - * плагина. - * - * @param string $plugin_name Имя плагина, для которого подготавливаются настройки - * @param null $setting_name Имя настройки, заполняется, если нужно извлечь только - * 1 конкретную настройку - * - * @return array|mixed - * @throws \Exception - * @author Alexander Kovalev - * @since 2.0.0 - * - */ - private function get_parsed_plugin_settings($plugin_name, $setting_name = null) - { - $settings = $this->get_settings(); - $default_settings = [ - 'load_mode' => 'enable', - 'visability' => "", - 'js' => [], - 'css' => [], - 'select_control_classes' => " js-wam-select--enable", - 'settings_button_classes' => " js-wam-button--hidden", - ]; - - $settings_formated = $default_settings; - - if( !empty($settings['plugins']) && isset($settings['plugins'][$plugin_name]) ) { - $plugin_settings = $settings['plugins'][$plugin_name]; - $settings_formated['load_mode'] = !empty($plugin_settings['load_mode']) ? $plugin_settings['load_mode'] : "enable"; - $settings_formated['visability'] = !empty($plugin_settings['visability']) ? stripslashes($plugin_settings['visability']) : ""; - $settings_formated['js'] = !empty($plugin_settings['js']) ? $plugin_settings['js'] : ""; - $settings_formated['css'] = !empty($plugin_settings['css']) ? $plugin_settings['css'] : ""; - - if( "enable" === $settings_formated['load_mode'] ) { - $settings_formated['select_control_classes'] = " js-wam-select--enable"; - $settings_formated['settings_button_classes'] = " js-wam-button--hidden"; - } else { - $settings_formated['select_control_classes'] = " js-wam-select--disable"; - $settings_formated['settings_button_classes'] = ""; - } - } - - if( $setting_name && isset($settings_formated[$setting_name]) ) { - return $settings_formated[$setting_name]; - } - - return $settings_formated; - } - - /** - * Подготовка настроек ресурсов к выводу в шаблоне - * - * Устанавливаем ключи и значения по умолчанию или берем сохраненные - * значения из базы данных. Тем самым мы гарантируем, что в шаблоне - * всегда будет существовать используемый элемент массива из настроек - * ресурсов. - * - * @param array $assets Массив с загружаемыми ресурсами, к которому будут - * добавлены настройки по умолчанию и сохраненные настройки - * @param string $plugin_name Имя плагина, если нужно сфокусироваться на группе ресурсов, - * которые относятся к определенному плагину - * - * @return array - * @throws \Exception - * @author Alexander Kovalev - * @since 2.0.0 - * - */ - private function get_parsed_asset_settings(array $assets, $group_name, $plugin_name = null) - { - $plugin_group = false; - $settings_formated = []; - $settings = $this->get_settings(); - - if( !isset($assets['js']) ) { - $assets['js'] = []; - } - if( !isset($assets['css']) ) { - $assets['css'] = []; - } - - if( !empty($settings[$group_name]) ) { - if( !empty($plugin_name) ) { - $settings = isset($settings[$group_name][$plugin_name]) ? $settings[$group_name][$plugin_name] : []; - $plugin_group = true; - } else if( 'plugins' !== $group_name ) { - $settings = $settings[$group_name]; - } - } - - foreach((array)$assets as $type => $resources) { - $settings_formated[$type] = []; - - foreach((array)$resources as $name => $attrs) { - $s = &$settings_formated[$type][$name]; - - if( isset($settings[$type]) && isset($settings[$type][$name]) && !empty($settings[$type][$name]['visability']) ) { - $s['load_mode'] = "disable"; - $s['visability'] = stripslashes($settings[$type][$name]['visability']); - } else { - if( $plugin_group ) { - $plugin_load_mode = !empty($settings['load_mode']) ? $settings['load_mode'] : 'enable'; - - $s['load_mode'] = "enable" === $plugin_load_mode ? 'enable' : 'disable'; - } else { - $s['load_mode'] = "enable"; - } - $s['visability'] = ""; - } - - if( isset($settings[$type]) && isset($settings[$type][$name]) && !empty($settings[$type][$name]['move_to_footer']) ) { - $s['move_to_footer'] = "true" === $settings[$type][$name]['move_to_footer']; - } else { - $s['move_to_footer'] = false; - } - - if( isset($settings[$type]) && isset($settings[$type][$name]) && !empty($settings[$type][$name]['dns_prefetch']) ) { - $s['dns_prefetch'] = "true" === $settings[$type][$name]['dns_prefetch']; - } else { - $s['dns_prefetch'] = false; - } - - if( 'disable' === $s['load_mode'] ) { - $s['row_classes'] = " js-wam-table__tr--disabled-section"; - $s['select_control_classes'] = " js-wam-select--disable"; - $s['settings_button_classes'] = ""; - - if( isset($plugin_load_mode) && 'enable' !== $plugin_load_mode ) { - $s['settings_button_classes'] = " js-wam-button--hidden"; - } - } else { - $s['row_classes'] = ""; - $s['select_control_classes'] = " js-wam-select--enable"; - $s['settings_button_classes'] = " js-wam-button--hidden"; - } - - $s['requires'] = $this->get_asset_requires($name); - $s = array_merge($s, $attrs); - } - } - - return $settings_formated; - } - - /** - * Get plugin data from folder name - * - * @param $name - * - * @return array - */ - private function get_plugin_data($name) - { - $data = []; - - if( $name ) { - if( !function_exists('get_plugins') ) { - // подключим файл с функцией get_plugins() - require_once ABSPATH . 'wp-admin/includes/plugin.php'; - } - $all_plugins = get_plugins(); - if( !empty($all_plugins) ) { - foreach($all_plugins as $plugin_path => $plugin_data) { - if( strpos($plugin_path, $name . '/') !== false ) { - $data = $plugin_data; - $data['basename'] = $plugin_path; - break; - } - } - } - } - - return $data; - } - - /** - * Get all plugin settings in dependence on logic. - * - * If plugin loaded in admin area, the method will return settings for the admin area. * - * - * @return array All plugin settings - * @throws \Exception - * @author Alexander Kovalev - * @since 2.0.1 - */ - private function get_settings() - { - if( is_admin() ) { - if( $this->plugin->isNetworkActive() && $this->plugin->isNetworkAdmin() ) { - return $this->plugin->getNetworkOption('backend_assets_states', []); - } - - return $this->plugin->getOption('backend_assets_states', []); - } - - return $this->plugin->getOption('assets_states', []); - } - - /** - * Exception for address starting from "//example.com" instead of - * "http://example.com". WooCommerce likes such a format - * - * @param string $url Incorrect URL. - * - * @return string Correct URL. - */ - private function prepare_url($url) - { - if( isset($url[0]) && isset($url[1]) && '/' == $url[0] && '/' == $url[1] ) { - $out = (is_ssl() ? 'https:' : 'http:') . $url; - } else { - $out = $url; - } - - return $out; - } - - /** - * Get current URL - * - * @return string - */ - private function get_current_url_path() - { - if( !is_admin() ) { - $url = explode('?', $_SERVER['REQUEST_URI'], 2); - if( strlen($url[0]) > 1 ) { - $out = rtrim($url[0], '/'); - } else { - $out = $url[0]; - } - - return "/" === $out ? "/" : untrailingslashit($out); - } - - $removeble_args = array_merge(['wbcr_assets_manager'], wp_removable_query_args()); - - $url = remove_query_arg($removeble_args, $_SERVER['REQUEST_URI']); - - return esc_url_raw(untrailingslashit($url)); - } - - /** - * Checks how heavy is file - * - * @param string $src URL. - * - * @return int Size in KB. - */ - private function get_asset_size($src) - { - $weight = 0; - - $home = get_theme_root() . '/../..'; - $src = explode('?', $src); - - if( !filter_var($src[0], FILTER_VALIDATE_URL) === false && strpos($src[0], get_home_url()) === false ) { - return 0; - } - - $src_relative = $home . str_replace(get_home_url(), '', $this->prepare_url($src[0])); - - if( file_exists($src_relative) ) { - $weight = round(filesize($src_relative) / 1024, 1); - } - - return $weight; - } - - private function get_conditions_login_params($group = false) - { - global $wp_roles, $wp; - - # Add User Roles - #--------------------------------------------------------------- - $all_roles = $wp_roles->roles; - $editable_roles = apply_filters('editable_roles', $all_roles); - $roles_param_values = [ - [ - 'value' => 'guest', - 'title' => __('Guest', 'gonzales'), - ] - ]; - - if( !empty($editable_roles) ) { - foreach($editable_roles as $role_ID => $role) { - $roles_param_values[] = ['value' => $role_ID, 'title' => $role['name']]; - } - } - - # Add Post Types - #--------------------------------------------------------------- - $post_types = get_post_types([ - 'public' => true - ], 'objects'); - $post_types_param_values = []; - - if( !empty($post_types) ) { - foreach($post_types as $type) { - if( isset($type->name) ) { - $post_types_param_values[] = ['value' => $type->name, 'title' => $type->label]; - } - } - } - - # Add Taxonomies - #--------------------------------------------------------------- - $taxonomies = get_taxonomies([ - 'public' => true - ], 'objects'); - $taxonomies_param_values = []; - - if( !empty($taxonomies) ) { - foreach($taxonomies as $tax) { - $taxonomies_param_values[] = ['value' => $tax->name, 'title' => $tax->label]; - } - } - - $pro_label = !defined('WGZP_PLUGIN_ACTIVE') ? ' (Pro)' : ''; - - $location_items = [ - [ - 'id' => 'current-url', - 'title' => __('Current URL', 'gonzales'), - 'type' => 'default', - 'default_value' => $this->get_current_url_path(), - 'description' => __('Current Url', 'gonzales') - ], - [ - 'id' => 'query-string', - 'title' => __('Query string var', 'gonzales'), - 'type' => 'equals', - 'placeholder' => [__('Var name', 'gonzales'), __('Value', 'gonzales')], - 'description' => __('You can set this rule if the page url contains a query string. For example ?editor=classic&type=float. For example add the variable "type" to the first input field, and add "float" to the second input field. So field1: type = field2: float. Now, if you go to a page where there is a query string with the "type" variable equal to the "float" value, the script or style file will not be loaded.', 'gonzales') - ], - [ - 'id' => 'location-page', - 'title' => __('Custom URL', 'gonzales') . $pro_label, - 'type' => 'text', - 'description' => __('An URL of the current page where a user who views your website is located. If you use the equals operator, paste in field the request url without the query string. For example: "/my-page" or "/my-page/subpage". If you use the "Contains" operator, use the request url part. For example: "page" will match 2 in the pages "/my-page/subpage" and "/my-page".', 'gonzales'), - 'disabled' => !defined('WGZP_PLUGIN_ACTIVE') - ], - [ - 'id' => 'regular-expression', - 'title' => __('Regular Expression', 'gonzales') . $pro_label, - 'type' => 'regexp', - 'placeholder' => '^(about-page-[0-9]+|contacts-[0-9]{,2})', - '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'), - 'disabled' => !defined('WGZP_PLUGIN_ACTIVE') - ] - ]; - - if( !is_admin() ) { - $location_items[] = [ - 'id' => 'location-some-page', - 'title' => __('Page', 'gonzales'), - 'type' => 'select', - 'params' => [ - 'Basic' => [ - [ - 'value' => 'base_web', - 'title' => __('Entire Website', 'gonzales'), - ], - [ - 'value' => 'base_sing', - 'title' => __('All Singulars', 'gonzales'), - ], - [ - 'value' => 'base_arch', - 'title' => __('All Archives', 'gonzales'), - ], - ], - 'Special Pages' => [ - [ - 'value' => 'spec_404', - 'title' => __('404 Page', 'gonzales') - ], - [ - 'value' => 'spec_search', - 'title' => __('Search Page', 'gonzales') - ], - [ - 'value' => 'spec_blog', - 'title' => __('Blog / Posts Page', 'gonzales') - ], - [ - 'value' => 'spec_front', - 'title' => __('Front Page', 'gonzales') - ], - [ - 'value' => 'spec_date', - 'title' => __('Date Archive', 'gonzales') - ], - [ - 'value' => 'spec_auth', - 'title' => __('Author Archive', 'gonzales') - ], - ], - 'Posts' => [ - [ - 'value' => 'post_all', - 'title' => __('All Posts', 'gonzales') - ], - [ - 'value' => 'post_arch', - 'title' => __('All Posts Archive', 'gonzales') - ], - [ - 'value' => 'post_cat', - 'title' => __('All Categories Archive', 'gonzales') - ], - [ - 'value' => 'post_tag', - 'title' => __('All Tags Archive', 'gonzales') - ], - ], - 'Pages' => [ - [ - 'value' => 'page_all', - 'title' => __('All Pages', 'gonzales') - ], - [ - 'value' => 'page_arch', - 'title' => __('All Pages Archive', 'gonzales') - ], - ], - - ], - 'description' => __('List of specific pages.', 'gonzales') - ]; - $location_items[] = [ - 'id' => 'location-post-type', - 'title' => __('Post type', 'gonzales'), - 'type' => 'select', - 'params' => $post_types_param_values, - 'description' => __('A post type of the current page.', 'gonzales'), - ]; - $location_items[] = [ - 'id' => 'location-taxonomy', - 'title' => __('Taxonomy', 'gonzales'), - 'type' => 'select', - 'params' => $taxonomies_param_values, - 'description' => __('A taxonomy of the current page.', 'gonzales'), - ]; - } else { - $location_items[] = [ - 'id' => 'location-some-page', - 'title' => __('Page', 'gonzales'), - 'type' => 'select', - 'params' => [ - 'Basic' => [ - [ - 'value' => 'all_admin_area', - 'title' => __('All Admin Pages', 'gonzales'), - ], - [ - 'value' => 'posts_all', - 'title' => __('All Posts', 'gonzales') - ], - [ - 'value' => 'posts_add_new', - 'title' => __('Add New Post', 'gonzales') - ], - [ - 'value' => 'posts_taxonomies', - 'title' => __('All Taxonomies', 'gonzales') - ] - ], - 'Dashboard' => [ - [ - 'value' => 'dashboard_home', - 'title' => __('Home', 'gonzales') - ], - [ - 'value' => 'dashboard_wordpress_updates', - 'title' => __('WordPress Updates', 'gonzales') - ], - ], - 'Media' => [ - [ - 'value' => 'media_library', - 'title' => __('Library', 'gonzales') - ], - [ - 'value' => 'media_library_add_new', - 'title' => __('Add new', 'gonzales') - ] - ], - 'Appearance' => [ - [ - 'value' => 'appearance_themes', - 'title' => __('Themes', 'gonzales') - ], - [ - 'value' => 'appearance_customize', - 'title' => __('Customize', 'gonzales') - ], - [ - 'value' => 'appearance_widgets', - 'title' => __('Widgets', 'gonzales') - ], - [ - 'value' => 'appearance_menus', - 'title' => __('Menus', 'gonzales') - ], - [ - 'value' => 'appearance_theme_editor', - 'title' => __('Theme Editor', 'gonzales') - ] - ], - 'Plugins' => [ - [ - 'value' => 'plugins_installed', - 'title' => __('Installed Plugins', 'gonzales') - ], - [ - 'value' => 'plugins_add_new', - 'title' => __('Add New', 'gonzales') - ], - [ - 'value' => 'plugins_editor', - 'title' => __('Plugin Editor', 'gonzales') - ] - ], - 'Users' => [ - [ - 'value' => 'users_all', - 'title' => __('All Users', 'gonzales') - ], - [ - 'value' => 'users_add_new', - 'title' => __('Add New', 'gonzales') - ], - [ - 'value' => 'users_your_profile', - 'title' => __('Your profile', 'gonzales') - ] - ], - 'Tools' => [ - [ - 'value' => 'tools_available', - 'title' => __('Available Tools', 'gonzales') - ], - [ - 'value' => 'tools_import', - 'title' => __('Import', 'gonzales') - ], - [ - 'value' => 'tools_export', - 'title' => __('Export', 'gonzales') - ], - [ - 'value' => 'tools_site_health', - 'title' => __('Site Health', 'gonzales') - ], - [ - 'value' => 'tools_export_personal_data', - 'title' => __('Export Personal Data', 'gonzales') - ], - [ - 'value' => 'tools_erase_personal_data', - 'title' => __('Erase Personal Data', 'gonzales') - ] - ], - 'Settings' => [ - [ - 'value' => 'settings_general', - 'title' => __('General', 'gonzales') - ], - [ - 'value' => 'settings_writing', - 'title' => __('Writing', 'gonzales') - ], - [ - 'value' => 'settings_reading', - 'title' => __('Reading', 'gonzales') - ], - [ - 'value' => 'settings_media', - 'title' => __('Media', 'gonzales') - ], - [ - 'value' => 'settings_permalinks', - 'title' => __('Permalinks', 'gonzales') - ], - [ - 'value' => 'settings_privacy', - 'title' => __('Privacy', 'gonzales') - ] - ], - ], - 'description' => __('List of specific pages.', 'gonzales') - ]; - } - - $grouped_filter_params = [ - [ - 'id' => 'user', - 'title' => __('User', 'gonzales'), - 'items' => [ - [ - 'id' => 'user-role', - 'title' => __('Role', 'gonzales') . $pro_label, - 'type' => 'select', - 'params' => $roles_param_values, - 'description' => __('A role of the user who views your website. The role "guest" is applied to unregistered users.', 'gonzales'), - 'disabled' => !defined('WGZP_PLUGIN_ACTIVE') - ], - /*[ - 'id' => 'user-registered', - 'title' => __( 'Registration Date', 'gonzales' ), - 'type' => 'date', - 'description' => __( 'The date when the user who views your website was registered. For unregistered users this date always equals to 1 Jan 1970.', 'gonzales' ) - ],*/ - [ - 'id' => 'user-mobile', - 'title' => __('Mobile Device', 'gonzales') . $pro_label, - 'type' => 'select', - 'params' => [ - ['value' => 'yes', 'title' => __('Yes', 'gonzales')], - ['value' => 'no', 'title' => __('No', 'gonzales')] - ], - 'description' => __('Determines whether the user views your website from mobile device or not.', 'gonzales'), - 'disabled' => !defined('WGZP_PLUGIN_ACTIVE') - ], - [ - 'id' => 'user-cookie-name', - 'title' => __('Cookie Name', 'gonzales') . $pro_label, - 'type' => 'text', - 'only_equals' => true, - 'description' => __('Determines whether the user\'s browser has a cookie with a given name.', 'gonzales'), - 'disabled' => !defined('WGZP_PLUGIN_ACTIVE') - ] - ] - ], - [ - 'id' => 'location', - 'title' => __('Location', 'gonzales'), - 'items' => $location_items - ] - ]; - - $filterParams = []; - foreach((array)$grouped_filter_params as $filter_group) { - $filterParams = array_merge($filterParams, $filter_group['items']); - } - - return $group ? $grouped_filter_params : $filterParams; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-check-conditions.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-check-conditions.php deleted file mode 100644 index 4ea06420..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-check-conditions.php +++ /dev/null @@ -1,521 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 10.09.20198, Webcraftic - * @since 2.0 - */ -class WGZ_Check_Conditions { - - protected $condition; - - public function __construct($condition) - { - if( empty($condition) ) { - $this->condition = []; - } else { - $condition = @json_decode(stripslashes($condition)); - $this->condition = $condition; - } - } - - /** - * Проверяем в правильном ли формате нам передано условие - * - * @param \stdClass $condition - * - * @return bool - * @since 2.2.0 - * - */ - protected function validate_condition_schema($condition) - { - $isset_attrs = !empty($condition->param) && !empty($condition->operator) && !empty($condition->type) && isset($condition->value); - - $allow_params = in_array($condition->param, [ - 'user-role', - 'user-mobile', - 'user-cookie-name', - 'current-url', - 'query-string', - 'location-page', - 'regular-expression', - 'location-some-page', - 'location-post-type', - 'location-taxonomy' - ]); - - $allow_operators = in_array($condition->operator, [ - 'equals', - 'notequal', - 'less', - 'older', - 'greater', - 'younger', - 'contains', - 'notcontain', - 'between' - ]); - - $allow_types = in_array($condition->type, ['select', 'text', 'default', 'regexp', 'equals']); - - return $isset_attrs && $allow_params && $allow_operators && $allow_types; - } - - /** - * @return bool - * @since 2.0.0 - * @author Alexander Kovalev - */ - public function validate() - { - if( empty($this->condition) && !is_array($this->condition) ) { - return false; - } - - $or = null; - foreach($this->condition as $group_OR) { - if( !empty($group_OR->conditions) && is_array($group_OR->conditions) ) { - $and = null; - foreach($group_OR->conditions as $condition) { - if( $this->validate_condition_schema($condition) ) { - $method_name = str_replace('-', '_', $condition->param); - if( is_null($and) ) { - $and = $this->call_method($method_name, $condition->operator, $condition->value); - } else { - $and = $and && $this->call_method($method_name, $condition->operator, $condition->value); - } - } - } - - $or = is_null($or) ? $and : $or || $and; - } - } - - return is_null($or) ? false : $or; - } - - /** - * Call specified method - * - * @param $method_name - * @param $operator - * @param $value - * - * @return bool - */ - protected function call_method($method_name, $operator, $value) - { - if( method_exists($this, $method_name) ) { - return $this->$method_name($operator, $value); - } else { - return apply_filters('wam/conditions/call_method', false, $method_name, $operator, $value); - } - } - - /** - * @param string $path - * - * @return string - * @author Alexander Kovalev - * @since 2.0.0 - * - */ - protected function get_admin_url_path($path) - { - return str_replace(site_url(), '', admin_url($path)); - } - - /** - * Get referer URL - * - * @return string - */ - protected function get_referer_url() - { - $out = ""; - $url = explode('?', str_replace(site_url(), '', $_SERVER['HTTP_REFERER']), 2); - if( isset($url[0]) ) { - $out = trim($url[0], '/'); - } - - return $out ? urldecode($out) : '/'; - } - - /** - * Get current URL - * - * @return string - */ - protected function get_current_url_path($clear_query = false) - { - if( !is_admin() && !$clear_query ) { - $url = explode('?', $_SERVER['REQUEST_URI'], 2); - if( strlen($url[0]) > 1 ) { - $out = rtrim($url[0], '/'); - } else { - $out = $url[0]; - } - - return "/" === $out ? "/" : untrailingslashit($out); - } - - $removeble_args = array_merge(['wbcr_assets_manager'], wp_removable_query_args()); - - $url = remove_query_arg($removeble_args, $_SERVER['REQUEST_URI']); - - return esc_url_raw(untrailingslashit($url)); - } - - /** - * Check by operator - * - * @param $operator - * @param $first - * @param $second - * @param $third - * - * @return bool - */ - public function apply_operator($operator, $first, $second, $third = false) - { - switch( $operator ) { - case 'equals': - return $first === $second; - case 'notequal': - return $first !== $second; - case 'less': - case 'older': - return $first > $second; - case 'greater': - case 'younger': - return $first < $second; - case 'contains': - return strpos($first, $second) !== false; - case 'notcontain': - return strpos($first, $second) === false; - case 'between': - return $first < $second && $second < $third; - - default: - return $first === $second; - } - } - - /** - * Get timestamp - * - * @param $units - * @param $count - * - * @return integer - */ - protected function get_timestamp($units, $count) - { - switch( $units ) { - case 'seconds': - return $count; - case 'minutes': - return $count * MINUTE_IN_SECONDS; - case 'hours': - return $count * HOUR_IN_SECONDS; - case 'days': - return $count * DAY_IN_SECONDS; - case 'weeks': - return $count * WEEK_IN_SECONDS; - case 'months': - return $count * MONTH_IN_SECONDS; - case 'years': - return $count * YEAR_IN_SECONDS; - - default: - return $count; - } - } - - /** - * Get date timestamp - * - * @param $value - * - * @return integer - */ - public function get_date_timestamp($value) - { - if( is_object($value) ) { - return (current_time('timestamp') - $this->get_timestamp($value->units, $value->unitsCount)) * 1000; - } else { - return $value; - } - } - - /** - * A some selected page - * - * @param $operator - * @param $value - * - * @return boolean - */ - protected function location_some_page($operator, $value) - { - if( !is_admin() ) { - // For frontend area - switch( $value ) { - case 'base_web': // Basic - Entire Website - $result = !is_admin(); - break; - case 'base_sing': // Basic - All Singulars - $result = is_singular(); - break; - case 'base_arch': // Basic - All Archives - $result = is_archive(); - break; - case 'spec_404': // Special Pages - 404 Page - $result = is_404(); - break; - case 'spec_search': // Special Pages - Search Page - $result = is_search(); - break; - case 'spec_blog': // Special Pages - Blog / Posts Page - $result = is_home(); - break; - case 'spec_front': // Special Pages - Front Page - $result = is_front_page(); - break; - case 'spec_date': // Special Pages - Date Archive - $result = is_date(); - break; - case 'spec_auth': // Special Pages - Author Archive - $result = is_author(); - break; - case 'post_all': // Posts - All Posts - case 'page_all': // Pages - All Pages - $result = false; - $post_id = (!is_404() && !is_search() && !is_archive() && !is_home()) ? get_the_ID() : false; - - if( false !== $post_id ) { - $post_type = 'post_all' == $value ? 'post' : 'page'; - $result = $post_type == get_post_type($post_id); - } - break; - case 'post_arch': // Posts - All Posts Archive - case 'page_arch': // Pages - All Pages Archive - $result = false; - if( is_archive() ) { - $post_type = 'post_arch' == $value ? 'post' : 'page'; - $result = $post_type == get_post_type(); - } - break; - case 'post_cat': // Posts - All Categories Archive - case 'post_tag': // Posts - All Tags Archive - $result = false; - if( is_archive() && 'post' == get_post_type() ) { - $taxonomy = 'post_tag' == $value ? 'post_tag' : 'category'; - $obj = get_queried_object(); - - $current_taxonomy = ''; - if( '' !== $obj && null !== $obj ) { - $current_taxonomy = $obj->taxonomy; - } - - if( $current_taxonomy == $taxonomy ) { - $result = true; - } - } - break; - - default: - $result = true; - } - } else { - // For admin area - switch( $value ) { - case 'all_admin_area': - $result = is_admin(); - break; - case 'dashboard_home': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('index.php'); - break; - case 'dashboard_wordpress_updates': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('update-core.php'); - break; - case 'posts_all': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('edit.php'); - break; - case 'posts_add_new': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('post-new.php'); - break; - case 'posts_taxonomies': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('edit-tags.php'); - break; - case 'media_library': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('upload.php'); - break; - case 'media_library_add_new': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('media-new.php'); - break; - case 'appearance_themes': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('themes.php'); - break; - case 'appearance_customize': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('customize.php'); - break; - case 'appearance_widgets': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('widgets.php'); - break; - case 'appearance_menus': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('nav-menus.php'); - break; - case 'appearance_theme_editor': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('theme-editor.php'); - break; - case 'plugins_installed': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('plugins.php'); - break; - case 'plugins_add_new': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('plugin-install.php'); - break; - case 'plugins_editor': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('plugin-editor.php'); - break; - case 'users_all': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('users.php'); - break; - case 'users_add_new': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('user-new.php'); - break; - case 'users_your_profile': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('profile.php'); - break; - case 'tools_available': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('tools.php'); - break; - case 'tools_import': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('import.php'); - break; - case 'tools_export': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('export.php'); - break; - case 'tools_site_health': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('site-health.php'); - break; - case 'tools_export_personal_data': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('tools.php'); - break; - case 'tools_erase_personal_data': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('tools.php'); - break; - case 'settings_general': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('options-general.php'); - break; - case 'settings_writing': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('options-writing.php'); - break; - case 'settings_reading': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('options-reading.php'); - break; - case 'settings_media': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('options-media.php'); - break; - case 'settings_permalinks': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('options-permalink.php'); - break; - case 'settings_privacy': - $result = $this->get_current_url_path(true) === $this->get_admin_url_path('privacy.php'); - break; - default: - $result = true; - } - } - - return $this->apply_operator($operator, $result, true); - } - - /** - * Проверяет текущий URL страницы. - * - * Если url в условии и url текущей страницы совпадают, - * условие будет выполнено успешно. - * - * @param string $operator - * @param string $value - * @author Alexander Kovalev - * @since 2.0.0 - * - */ - protected function current_url($operator, $value) - { - $value = ("/" === $value) ? "/" : untrailingslashit($value); - $current_url = $this->get_current_url_path(); - - return $this->apply_operator($operator, $value, $current_url); - } - - /** - * A post type of the current page - * - * @param $operator - * @param $value - * - * @return boolean - */ - protected function location_post_type($operator, $value) - { - if( is_singular() ) { - return $this->apply_operator($operator, $value, get_post_type()); - } - - return false; - } - - /** - * A taxonomy of the current page - * - * @param $operator - * @param $value - * - * @return boolean - * @since 2.2.8 The bug is fixed, the condition was not checked - * for tachonomies, only posts. - * - */ - protected function location_taxonomy($operator, $value) - { - $taxonomy = null; - - if( is_tax() || is_tag() || is_category() ) { - $taxonomy = get_queried_object()->taxonomy; - } - - return $this->apply_operator($operator, $taxonomy, $value); - } - - /** - * Checking for the existence of a variable in a query string - * - * @param $operator - * @param $value - * - * @return boolean - * @since 2.2.8 The bug is fixed, the condition was not checked - * for tachonomies, only posts. - * - */ - protected function query_string($operator, $value) - { - if( is_object($value) ) { - if( !empty($value->var_name) && isset($_GET[$value->var_name]) ) { - return $this->apply_operator($operator, $_GET[$value->var_name], $value->var_value); - } - } - - return false; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-views.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-views.php deleted file mode 100644 index 35a53b60..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/classes/class-views.php +++ /dev/null @@ -1,100 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 05.04.2019, Webcraftic - * @version 1.0 - */ - -class WGZ_Views { - - /** - * The single instance of the class. - * - * @since 1.3.0 - * @access protected - * @var array - */ - protected static $_instance = []; - - /** - * @author Alexander Kovalev - * @since 1.3.0 - * @var string - */ - protected $plugin_dir; - - /** - * WRIO_Views constructor. - * - * @author Alexander Kovalev - * - * @param string $plugin_dir - */ - public function __construct( $plugin_dir ) { - $this->plugin_dir = $plugin_dir; - } - - /** - * @author Alexander Kovalev - * @since 1.3.6 - add instace id - * @since 1.3.0 - * - * @param string $plugin_dir - * - * @return object|\WGZ_Views object Main instance. - */ - public static function get_instance( $plugin_dir ) { - $instance_id = md5( $plugin_dir ); - - if ( ! isset( self::$_instance[ $instance_id ] ) ) { - self::$_instance[ $instance_id ] = new self( $plugin_dir ); - } - - return self::$_instance[ $instance_id ]; - } - - /** - * Get a template contents. - * - * @author Alexander Kovalev - * @since 1.3.0 - * - * @param string $template The template name. - * @param mixed $data Some data to pass to the template. - * @param WBCR\Factory_Templates_134\Pages\PageBase $page - * - * @return bool|string The page contents. False if the template doesn't exist. - */ - public function get_template( $template, $data = [], WBCR\Factory_Templates_134\Pages\PageBase $page = null ) { - $template = str_replace( '_', '-', $template ); - $path = $this->plugin_dir . '/views/' . $template . '.php'; - - if ( ! file_exists( $path ) ) { - return false; - } - - ob_start(); - include $path; - $contents = ob_get_clean(); - - return trim( (string) $contents ); - } - - /** - * Print a template. - * - * @author Alexander Kovalev - * @access public - * - * @since 1.3.0 - * - * @param string $template The template name. - * @param mixed $data Some data to pass to the template. - * @param WBCR\Factory_Templates_134\Pages\PageBase $page - */ - public function print_template( $template, $data = [], WBCR\Factory_Templates_134\Pages\PageBase $page = null ) { - echo $this->get_template( $template, $data, $page ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/includes/functions.php b/wp-content/plugins/!clearfy/components/assets-manager/includes/functions.php deleted file mode 100644 index c58bfe96..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/includes/functions.php +++ /dev/null @@ -1,43 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 11.05.2019, Webcraftic - * @version 1.0 - */ - -/** - * Assets manager MU dynamically activated only plugins that you have selected in each page. - * This method installs the MU plugin if it does not exist or its current version does not - * match the current version. - * - * @author Alexander Kovalev - * @since 1.0.7 - */ -function wbcr_gnz_deploy_mu_plugin() { - if ( wp_mkdir_p( WPMU_PLUGIN_DIR ) ) { - if ( ! file_exists( WPMU_PLUGIN_DIR . "/assets-manager.php" ) ) { - @copy( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', WPMU_PLUGIN_DIR . '/assets-manager.php' ); - } else { - require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); - $dp = get_plugin_data( WPMU_PLUGIN_DIR . "/assets-manager.php", false, false ); - $sp = get_plugin_data( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', false, false ); - if ( version_compare( $dp['Version'], $sp['Version'], '!=' ) ) { - @copy( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', WPMU_PLUGIN_DIR . '/assets-manager.php' ); - } - } - } -} - -/** - * Remove MU plugin - * - * @author Alexander Kovalev - * @since 1.0.7 - */ -function wbcr_gnz_remove_mu_plugin() { - if ( file_exists( WPMU_PLUGIN_DIR . "/assets-manager.php" ) ) { - @unlink( WPMU_PLUGIN_DIR . '/assets-manager.php' ); - } -} diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.mo b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.mo deleted file mode 100644 index e3077ccb..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.po b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.po deleted file mode 100644 index 11dd757c..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-es_ES.po +++ /dev/null @@ -1,466 +0,0 @@ -# Translation of Plugins - Clearfy in Spanish (Spain) -# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-04-28 06:23+0300\n" -"PO-Revision-Date: 2019-04-28 06:23+0300\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:30 -msgid "" -"We detected that you used the Assets manager plugin. Do you want to import " -"settings from this plugin to the Clearfy plugin?" -msgstr "" -"Configuración de activos detectada. ¿Desea importar esta configuración al " -"plugin Clearfy?" - -#: admin/boot.php:31 -msgid "Import options" -msgstr "Importar opciones" - -#: admin/boot.php:48 -msgid "Settings has been successfully imported!" -msgstr "¡Configuración importada exitosamente!" - -#: admin/boot.php:140 admin/pages/assets-manager.php:96 -msgid "Disable assets manager" -msgstr "Deshabilitar gestor de activos" - -#: admin/boot.php:147 admin/pages/assets-manager.php:120 -msgid "Disable assets manager panel" -msgstr "Deshabilitar el panel de Gestor de Activos" - -#: admin/boot.php:153 admin/pages/assets-manager.php:129 -msgid "Disable assets manager on front" -msgstr "Deshabilitar el administrador de activos en el frontend" - -#: admin/boot.php:159 admin/pages/assets-manager.php:138 -msgid "Disable assets manager on back-end" -msgstr "Deshabilitar el administrador de activos en el back-end" - -#: admin/boot.php:165 -msgid "Assets manager options" -msgstr "Opciiones del Gestor de Activos" - -#: admin/boot.php:205 includes/class.configurate-assets.php:266 -msgid "Disable plugins (groups of scripts)" -msgstr "Deshabilitar plugins (grupos de scripts)" - -#: admin/boot.php:206 includes/class.configurate-assets.php:267 -msgid "Conditions by the link template" -msgstr "Condiciones para enlace de plantilla." - -#: admin/boot.php:207 includes/class.configurate-assets.php:268 -msgid "Conditions by the regular expression" -msgstr "Condiciones para la expresión regular." - -#: admin/boot.php:208 includes/class.configurate-assets.php:269 -msgid "Safe mode" -msgstr "Modo seguro" - -#: admin/boot.php:209 includes/class.configurate-assets.php:270 -msgid "Statistics and optimization results" -msgstr "Estadísticas y resultados de optimización." - -#: admin/boot.php:220 -msgid "Get premium" -msgstr "Obtener premium" - -#: admin/pages/assets-manager.php:48 admin/pages/assets-manager.php:67 -#: admin/pages/assets-manager.php:75 -msgid "Assets manager" -msgstr "Gestor de Activos" - -#: admin/pages/assets-manager.php:67 admin/pages/assets-manager.php:75 -msgid "General" -msgstr "General" - -#: admin/pages/assets-manager.php:89 -msgid "Disable unused scripts, styles, and fonts" -msgstr "Deshabilitar los scripts, estilos y fuentes no utilizados" - -#: admin/pages/assets-manager.php:89 -msgid "" -"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." -msgstr "" -"Hay un botón en la barra de administración llamado \"Administrador de " -"secuencias de comandos\". Si hace clic en él, verá una lista de los scripts, " -"estilos y fuentes cargados en la página actual de su sitio. Si cree que uno " -"de los recursos es superfluo en esta página, puede deshabilitarlo " -"individualmente, para que no cree consultas innecesarias cuando se carga la " -"página. Utilice el administrador de scripts con mucho cuidado para no dañar " -"su sitio web. Recomendamos probar esta función en un servidor local." - -#: admin/pages/assets-manager.php:98 -msgid "Full disable of the module." -msgstr "Deshabilitación completa del módulo." - -#: admin/pages/assets-manager.php:122 -msgid "" -"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." -msgstr "" -"De forma predeterminada, en la barra de administración hay un botón para " -"controlar los scripts y estilos de activos. Con esta opción, puede " -"desactivar el administrador de secuencias de comandos en la parte frontal y " -"posterior." - -#: admin/pages/assets-manager.php:131 -msgid "Disables assets manager initialization for frontend." -msgstr "Desactiva el inicio del administrador de activos para el frontend." - -#: admin/pages/assets-manager.php:140 -msgid "Disables assets manager initialization for backend." -msgstr "Desactiva el inicio del administrador de activos para el backend." - -#: gonzales.php:84 -msgid "Webcraftic assets manager" -msgstr "Gestor de activos webcraftic" - -#: includes/class.configurate-assets.php:128 -#: includes/class.configurate-assets.php:147 -msgid "Assets Manager" -msgstr "Gestor de Activos" - -#: includes/class.configurate-assets.php:212 -msgid "Total requests" -msgstr "Total de solicitudes" - -#: includes/class.configurate-assets.php:213 -msgid "Total size" -msgstr "Tamaño total" - -#: includes/class.configurate-assets.php:214 -msgid "Optimized size" -msgstr "Tamaño optimizado" - -#: includes/class.configurate-assets.php:215 -msgid "Disabled js" -msgstr "JS desactivado" - -#: includes/class.configurate-assets.php:216 -msgid "Disabled css" -msgstr "CSS desactivado" - -#: includes/class.configurate-assets.php:218 -msgid "" -"This is the general statistics to see the optimization result. Available in " -"the paid version only." -msgstr "" -"Esta es la estadística general para ver el resultado de la optimización. " -"Disponible solo en la versión de pago." - -#: includes/class.configurate-assets.php:222 -msgid "Reset" -msgstr "Resetear" - -#: includes/class.configurate-assets.php:223 -msgid "Save" -msgstr "Guardar" - -#: includes/class.configurate-assets.php:224 -msgid "" -"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" -msgstr "" -"En el modo de prueba, puede experimentar con la desactivación segura de " -"scripts no utilizados para su sitio. Los recursos que desactivó solo serán " -"visibles para usted (el administrador), y todos los demás usuarios recibirán " -"una versión no optimizada del sitio, hasta que elimine esta marca" - -#: includes/class.configurate-assets.php:225 -msgid "Safe mode PRO" -msgstr "Modo seguro PRO" - -#: includes/class.configurate-assets.php:227 -msgid "Close" -msgstr "Cerrar" - -#: includes/class.configurate-assets.php:257 -msgid "" -"Important! Each page of your website has different sets of scripts and " -"styles files." -msgstr "" -"¡Importante! Cada página de su sitio web tiene diferentes conjuntos de " -"scripts y archivos de estilos." - -#: includes/class.configurate-assets.php:258 -msgid "" -"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." -msgstr "" -"Utilice esta función para deshabilitar los scripts y estilos no deseados " -"configurando la mejor lógica para diferentes tipos de páginas. Recomendamos " -"trabajar en \"Safe mode\" ya que deshabilitar cualquier archivo importante " -"del script del sistema podría dañar el sitio web. Todos los cambios " -"realizados en Modo seguro están disponibles solo para el administrador. De " -"esta manera solo usted, como administrador, puede ver el resultado de la " -"optimización. Para habilitar los cambios para otros usuarios, desmarque Modo " -"seguro." - -#: includes/class.configurate-assets.php:259 -#, php-format -msgid "" -"For more details and user guides, check the plugin’s documentation." -msgstr "" -"Para más detalles y guías de usuario del plugin, consulte la documentación." - -#: includes/class.configurate-assets.php:262 -msgid "Upgrade to Premium" -msgstr "Actualizar a Premium" - -#: includes/class.configurate-assets.php:265 -msgid "MORE IN CLEARFY BUSINESS" -msgstr "MÁS EN CLEARFY BUSINESS" - -#: includes/class.configurate-assets.php:308 -#: includes/class.configurate-assets.php:336 -msgid "Loaded" -msgstr "Cargado" - -#: includes/class.configurate-assets.php:309 -msgid "Plugin" -msgstr "Plugin" - -#: includes/class.configurate-assets.php:313 -#: includes/class.configurate-assets.php:342 -msgid "Load resource?" -msgstr "¿Cargar recurso?" - -#: includes/class.configurate-assets.php:314 -#: includes/class.configurate-assets.php:343 -msgid "Conditions" -msgstr "Condiciones" - -#: includes/class.configurate-assets.php:322 -msgid "Author" -msgstr "Autor" - -#: includes/class.configurate-assets.php:323 -#: includes/class.configurate-assets.php:402 -msgid "Version" -msgstr "Versión" - -#: includes/class.configurate-assets.php:337 -msgid "Size" -msgstr "Tamaño" - -#: includes/class.configurate-assets.php:338 -msgid "Resource" -msgstr "Recurso" - -#: includes/class.configurate-assets.php:366 -msgid "In use by" -msgstr "En uso por" - -#: includes/class.configurate-assets.php:373 -msgid "Requires" -msgstr "Requiere" - -#: includes/class.configurate-assets.php:402 -msgid "--" -msgstr "--" - -#: includes/class.configurate-assets.php:559 -#: includes/class.configurate-assets.php:1403 -msgid "No" -msgstr "No" - -#: includes/class.configurate-assets.php:559 -#: includes/class.configurate-assets.php:1403 -msgid "Yes" -msgstr "Sí" - -#: includes/class.configurate-assets.php:575 -msgid "" -"Click the switch in the Load resource? column to display the " -"conditions for loading the resource." -msgstr "" -"Haga clic en el switch de la columna ¿Cargar recurso? para mostrar " -"las condiciones para cargar el recurso." - -#: includes/class.configurate-assets.php:577 -msgid "" -"Set the plugin logic to apply it to all plugin’s resources. This feature " -"available at the paid version." -msgstr "" -"Configure el \"plugin logic\" para aplicarlo a todos los recursos del " -"complemento. Esta característica está disponible en la versión de pago." - -#: includes/class.configurate-assets.php:586 -#: includes/class.configurate-assets.php:610 -msgid "Current URL" -msgstr "URL actual" - -#: includes/class.configurate-assets.php:587 -msgid "Everywhere" -msgstr "Donde sea" - -#: includes/class.configurate-assets.php:588 -msgid "Custom URL (PRO)" -msgstr "URL personalizada (PRO)" - -#: includes/class.configurate-assets.php:589 -msgid "Regular expression (PRO)" -msgstr "Expresión regular (PRO)" - -#: includes/class.configurate-assets.php:599 -msgid "Exclude" -msgstr "Excluir" - -#: includes/class.configurate-assets.php:599 -msgid "" -"You can disable this resource for all pages, except sections and page types " -"listed below. Specify sections and page types with the enabled resource." -msgstr "" -"Puede deshabilitar este recurso para todas las páginas, excepto las " -"secciones y los tipos de página que se enumeran a continuación. Especifique " -"secciones y tipos de página con el recurso habilitado." - -#: includes/class.configurate-assets.php:683 -msgid "Example" -msgstr "Ejemplo" - -#: includes/class.configurate-assets.php:683 -msgid "Enter URL (set * for mask)" -msgstr "Ingrese URL (set * for mask)" - -#: includes/class.configurate-assets.php:683 -msgid "" -"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." -msgstr "" -"Puede deshabilitar el recurso solo para las páginas que coincidan con la " -"dirección de la plantilla. Por ejemplo, si configura la plantilla para el " -"enlace como http://yoursite.test/profile/*, el recurso se deshabilita para " -"las siguientes páginas: http://yoursite.test/profile/12, http://yoursite." -"test/profile/43, http://yoursite.test/profile/999. Si no usa el símbolo de " -"asterisco en la plantilla, el complemento deshabilitará el recurso solo para " -"las páginas con una coincidencia del 100% en el tipo de enlace especificado. " -"Esta característica está disponible en la versión de pago." - -#: includes/class.configurate-assets.php:686 -msgid "Add field" -msgstr "Añadir campo" - -#: includes/class.configurate-assets.php:696 -msgid "Enter regular expression" -msgstr "Ingrese la expresión regular" - -#: includes/class.configurate-assets.php:696 -msgid "" -"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." -msgstr "" -"Las expresiones regulares pueden ser utilizadas por expertos. Esta " -"herramienta crea condiciones flexibles para deshabilitar el recurso. Por " -"ejemplo, si especifica esta expresión: ^ ([A-z0-9] + -)?Gifts? significa que " -"el recurso se deshabilitará en las siguientes páginas http: //yoursite.test/" -"get-gift/, http: //yoursite.test/gift/, http: //yoursite.test/get-gifts/, " -"http: / /yoursite.test/gifts/. El plugin ignora la barra diagonal inversa al " -"principio de la cadena de consulta, por lo que puede descartarla. Verifique " -"sus expresiones regulares aquí: https://regex101.com, esto evitará que " -"cometa errores. Esta característica está disponible en la versión de pago." - -#: includes/class.configurate-assets.php:715 -msgid "Also disabled for pages" -msgstr "También deshabilitado para páginas" - -#: includes/class.configurate-assets.php:729 -msgid "You don't have enough capability to edit this information." -msgstr "No tienes suficiente permisos para editar esta información." - -#: includes/class.configurate-assets.php:1293 -msgid "Minify and Combine" -msgstr "Minificar y Combinar" - -#: includes/class.configurate-assets.php:1314 -msgid "remove version?" -msgstr "¿Eliminar versión?" - -#: includes/class.configurate-assets.php:1314 -msgid "optimize?" -msgstr "¿optimizar?" - -#: includes/class.configurate-assets.php:1318 -msgid "" -"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." -msgstr "" -"Has habilitado "Eliminar cadenas de consulta" de los recursos " -"estáticos en el "Clearfy" plugin. Esta lista de configuraciones le " -"ayuda a excluir los scripts y estilos necesarios con las cadenas de consulta " -"restantes. Presione No para agregar un archivo a la lista excluida." - -#: includes/class.configurate-assets.php:1320 -msgid "" -"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." -msgstr "" -"Has habilitado "Optimizar js scripts?" y "Optimizar CSS " -"options" en el "plugin Minify & Combine". Esta configuración " -"excluye los scripts y los estilos que no desea optimizar. Presione No para " -"agregar un archivo a la lista excluida." - -#: includes/class.configurate-assets.php:1322 -msgid "" -"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." -msgstr "" -"Has habilitado "Optimizar js scripts?" y "Optimizar CSS " -"options" en el "Autoptimize". Esta configuración excluye los " -"scripts y los estilos que no desea optimizar. Presione No para agregar un " -"archivo a la lista excluida." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.mo b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.mo deleted file mode 100644 index d5427116..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.po b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.po deleted file mode 100644 index e6a45740..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-nl_BE.po +++ /dev/null @@ -1,194 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Clearfy\n" -"POT-Creation-Date: 2018-09-06 18:24+0300\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: nl_BE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:32 -msgid "Get ultimate plugin free" -msgstr "Krijg ultieme plugin gratis" - -#: admin/boot.php:57 admin/pages/assets-manager.php:101 -msgid "Disable assets manager" -msgstr "Schakel assets manager uit" - -#: admin/boot.php:64 admin/pages/assets-manager.php:125 -msgid "Disable assets manager panel" -msgstr "Schakel paneel van assets manager uit" - -#: admin/boot.php:70 admin/pages/assets-manager.php:134 -msgid "Disable assets manager on front" -msgstr "Schakel assets manager op front-end uit" - -#: admin/boot.php:76 admin/pages/assets-manager.php:143 -msgid "Disable assets manager on back-end" -msgstr "Schakel assets manager op back-end uit" - -#: admin/boot.php:82 -msgid "Assets manager options" -msgstr "Assets manager opties" - -#: admin/pages/assets-manager.php:42 admin/pages/assets-manager.php:61 -#: includes/class.configurate-assets.php:139 -msgid "Assets manager" -msgstr "Assets manager" - -#: admin/pages/assets-manager.php:62 -msgid "General" -msgstr "Algemeen" - -#: admin/pages/assets-manager.php:94 -msgid "Disable unused scripts, styles, and fonts" -msgstr "Ongebruikte scripts, stijlen en lettertypen uitschakelen" - -#: admin/pages/assets-manager.php:94 -msgid "" -"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." -msgstr "" -"Er is een knop in de beheerbalk genaamd 'Script Manager'. Als u erop klikt, " -"ziet u een lijst met geladen scripts, stijlen en lettertypen op de huidige " -"pagina van uw site. Als u denkt dat een van de items op deze pagina overbodig " -"is, kunt u deze afzonderlijk uitschakelen, zodat er geen onnodige query's " -"ontstaan ​​wanneer de pagina wordt geladen. Gebruik de script manager heel " -"voorzichtig om uw website niet te beschadigen. We raden aan om deze functie " -"bij een lokale server te testen." - -#: admin/pages/assets-manager.php:103 -msgid "Full disable of the module." -msgstr "De module volledig uitschakelen." - -#: admin/pages/assets-manager.php:127 -msgid "" -"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." -msgstr "" -"Standaard is er in je beheer balk een knop voor het beheren van de assets " -"scripts en -stijlen. Met deze optie kunt u de script manager aan frontend en " -"backend uitschakelen." - -#: admin/pages/assets-manager.php:136 -msgid "Disables assets manager initialization for frontend." -msgstr "Schakelt de opstart van assets manager voor de front-end uit." - -#: admin/pages/assets-manager.php:145 -msgid "Disables assets manager initialization for backend." -msgstr "Schakelt de opstart van assets manager voor de back-end uit." - -#: gonzales.php:23 -msgid "" -"We found that you use the plugin \"Clearfy - disable unused functions\", this " -"plugin already has the same functions as \"Assets manager\", so you can " -"disable the \"Assets manager\" plugin!" -msgstr "" -"We hebben vastgesteld dat u de plugin \"Clearfy - uitschakelen ongebruikte " -"functies\" gebruikt, deze plugin heeft al dezelfde functies als \"Assets " -"manager\", dus u kunt de plugin \"Assets manager\" uitschakelen!" - -#: gonzales.php:80 -msgid "Webcraftic assets manager" -msgstr "Webcraftic assets manager" - -#: includes/class.configurate-assets.php:94 -#: includes/class.configurate-assets.php:114 -msgid "Script Manager" -msgstr "Script Manager" - -#: includes/class.configurate-assets.php:141 -msgid "" -"Below you can disable/enable CSS and JS files on a per page/post basis, as " -"well as by custom post types. We recommend testing this locally or on a " -"staging site first, as you could break the appearance of your live site. If " -"you aren't sure about a certain script, you can try clicking on it, as a lot " -"of authors will mention their plugin or theme in the header of the source code." -msgstr "" -"Hieronder kunt u CSS en JS bestanden per pagina/post uitschakelen en " -"inschakelen, evenals voor aangepaste bericht types. We raden aan dit eerst " -"lokaal of op een staging-site te testen, omdat je het uiterlijk van je live " -"site kunt breken. Als je niet zeker bent van een bepaald script, kun je " -"proberen erop te klikken, omdat veel auteurs hun plugin of thema zullen " -"vermelden in de hoofding van de broncode." - -#: includes/class.configurate-assets.php:142 -msgid "" -"If for some reason you run into trouble, you can always enable everything " -"again to reset the settings." -msgstr "" -"Als u om de één of andere reden in de problemen komt, kunt u altijd alles " -"opnieuw inschakelen om de instellingen opnieuw in te stellen." - -#: includes/class.configurate-assets.php:151 -msgid "Save settings" -msgstr "Bewaar instellingen" - -#: includes/class.configurate-assets.php:158 -msgid "Hide panel in adminbar?" -msgstr "Verberg paneel in beheer balk?" - -#: includes/class.configurate-assets.php:169 -msgid "State" -msgstr "Staat" - -#: includes/class.configurate-assets.php:170 -msgid "Size" -msgstr "Formaat" - -#: includes/class.configurate-assets.php:171 -msgid "Script" -msgstr "Script" - -#: includes/class.configurate-assets.php:172 -msgid "In use" -msgstr "In gebruik" - -#: includes/class.configurate-assets.php:173 -msgid "Disable" -msgstr "Uitschakelen" - -#: includes/class.configurate-assets.php:174 -msgid "Enable" -msgstr "Inschakelen" - -#: includes/class.configurate-assets.php:221 -msgid "In use by" -msgstr "In gebruik door" - -#: includes/class.configurate-assets.php:248 -msgid "Enabled" -msgstr "Ingeschakeld" - -#: includes/class.configurate-assets.php:253 -msgid "Everywhere" -msgstr "Overal" - -#: includes/class.configurate-assets.php:260 -#: includes/class.configurate-assets.php:283 -msgid "Current URL" -msgstr "Huidige URL" - -#: includes/class.configurate-assets.php:269 -msgid "Disable everwhere to view enable settings." -msgstr "Overal uitschakelen om de instellingen voor inschakelen te bekijken." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.mo b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.mo deleted file mode 100644 index f21884c3..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.po b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.po deleted file mode 100644 index 7aec712f..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-pt_BR.po +++ /dev/null @@ -1,194 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-09-06 18:23+0300\n" -"PO-Revision-Date: 2018-09-06 18:23+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:32 -msgid "Get ultimate plugin free" -msgstr "Obtenha o melhor plugin grátis" - -#: admin/boot.php:57 admin/pages/assets-manager.php:101 -msgid "Disable assets manager" -msgstr "Desativar gerente de ativos" - -#: admin/boot.php:64 admin/pages/assets-manager.php:125 -msgid "Disable assets manager panel" -msgstr "Desativar painel do gerenciador de ativos" - -#: admin/boot.php:70 admin/pages/assets-manager.php:134 -msgid "Disable assets manager on front" -msgstr "Desativar o gerente de ativos na frente" - -#: admin/boot.php:76 admin/pages/assets-manager.php:143 -msgid "Disable assets manager on back-end" -msgstr "Desativar gerenciador de ativos no back-end" - -#: admin/boot.php:82 -msgid "Assets manager options" -msgstr "Opções do gerente de ativos" - -#: admin/pages/assets-manager.php:42 admin/pages/assets-manager.php:61 -#: includes/class.configurate-assets.php:139 -msgid "Assets manager" -msgstr "Gerente de Ativos" - -#: admin/pages/assets-manager.php:62 -msgid "General" -msgstr "Geral" - -#: admin/pages/assets-manager.php:94 -msgid "Disable unused scripts, styles, and fonts" -msgstr "Desativar scripts, estilos e fontes não utilizados" - -#: admin/pages/assets-manager.php:94 -msgid "" -"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." -msgstr "" -"Existe um botão na barra de admin chamado \"Script Manager \". Se você " -"clicar nele, verá uma lista de scripts, estilos e fontes carregados na " -"página atual do seu site. Se você acha que um dos ativos é supérfluo nesta " -"página, você pode desativá-lo individualmente, para que ele não crie " -"consultas desnecessárias ao carregar a página. Use o gerenciador de scripts " -"com muito cuidado para não corromper seu site. Recomendamos testar essa " -"função em um servidor local." - -#: admin/pages/assets-manager.php:103 -msgid "Full disable of the module." -msgstr "Desabilitação total do módulo." - -#: admin/pages/assets-manager.php:127 -msgid "" -"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." -msgstr "" -"Por padrão, na barra de administração, existe um botão para controlar os " -"scripts e estilos de recursos. Com essa opção, você pode desativar o " -"gerenciador de scripts na frente e no final." - -#: admin/pages/assets-manager.php:136 -msgid "Disables assets manager initialization for frontend." -msgstr "Desativa a inicialização do gerenciador de ativos para o frontend." - -#: admin/pages/assets-manager.php:145 -msgid "Disables assets manager initialization for backend." -msgstr "Desativa a inicialização do gerenciador de ativos para o back-end." - -#: gonzales.php:23 -msgid "" -"We found that you use the plugin \"Clearfy - disable unused functions\", " -"this plugin already has the same functions as \"Assets manager\", so you can " -"disable the \"Assets manager\" plugin!" -msgstr "" -"Descobrimos que você usa o plugin \"Clearfy - desabilita funções não usadas " -"\", este plugin já tem as mesmas funções de \"Assets manager \", então você " -"pode desabilitar o plugin \"Assets manager \"!" - -#: gonzales.php:80 -msgid "Webcraftic assets manager" -msgstr "Gerente de ativos da webraftic" - -#: includes/class.configurate-assets.php:94 -#: includes/class.configurate-assets.php:114 -msgid "Script Manager" -msgstr "Gerenciador de scripts" - -#: includes/class.configurate-assets.php:141 -msgid "" -"Below you can disable/enable CSS and JS files on a per page/post basis, as " -"well as by custom post types. We recommend testing this locally or on a " -"staging site first, as you could break the appearance of your live site. If " -"you aren't sure about a certain script, you can try clicking on it, as a lot " -"of authors will mention their plugin or theme in the header of the source " -"code." -msgstr "" -"Abaixo, você pode desativar / ativar arquivos CSS e JS em uma base por " -"página / postagem, bem como por tipos de postagem personalizados. " -"Recomendamos testar isso localmente ou em um site de teste primeiro, pois " -"você pode quebrar a aparência do site ao vivo. Se você não tem certeza sobre " -"um determinado script, pode tentar clicar nele, pois muitos autores " -"mencionarão seu plug-in ou tema no cabeçalho do código-fonte." - -#: includes/class.configurate-assets.php:142 -msgid "" -"If for some reason you run into trouble, you can always enable everything " -"again to reset the settings." -msgstr "" -"Se por algum motivo você tiver problemas, poderá sempre ativar tudo " -"novamente para redefinir as configurações." - -#: includes/class.configurate-assets.php:151 -msgid "Save settings" -msgstr "Salvar configurações" - -#: includes/class.configurate-assets.php:158 -msgid "Hide panel in adminbar?" -msgstr "Ocultar painel em adminbar?" - -#: includes/class.configurate-assets.php:169 -msgid "State" -msgstr "Estado" - -#: includes/class.configurate-assets.php:170 -msgid "Size" -msgstr "Tamanho" - -#: includes/class.configurate-assets.php:171 -msgid "Script" -msgstr "Roteiro" - -#: includes/class.configurate-assets.php:172 -msgid "In use" -msgstr "Em uso" - -#: includes/class.configurate-assets.php:173 -msgid "Disable" -msgstr "Desabilitar" - -#: includes/class.configurate-assets.php:174 -msgid "Enable" -msgstr "Habilitar" - -#: includes/class.configurate-assets.php:221 -msgid "In use by" -msgstr "Em uso por" - -#: includes/class.configurate-assets.php:248 -msgid "Enabled" -msgstr "ativado" - -#: includes/class.configurate-assets.php:253 -msgid "Everywhere" -msgstr "Em toda parte" - -#: includes/class.configurate-assets.php:260 -#: includes/class.configurate-assets.php:283 -msgid "Current URL" -msgstr "URL atual" - -#: includes/class.configurate-assets.php:269 -msgid "Disable everwhere to view enable settings." -msgstr "Desative o everwhere para visualizar as configurações de ativação." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.mo b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.mo deleted file mode 100644 index 7d905553..00000000 Binary files a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.po b/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.po deleted file mode 100644 index ace8c6a8..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/languages/gonzales-ru_RU.po +++ /dev/null @@ -1,574 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-10-16 15:56+0300\n" -"PO-Revision-Date: 2018-10-19 22:37+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: ru_RU\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ../..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: assets-manager\n" -"X-Poedit-SearchPath-1: assets-manager-premium\n" -"X-Poedit-SearchPathExcluded-0: assets-manager/libs\n" - -#: assets-manager-premium/admin/boot.php:46 -msgid "" -"Assets manager Premium
      We did not find the installed " -"plugin \"Assets manager\". Please install the plugin \"Assets manager\" " -"first for premium functions!" -msgstr "" -"Менеджер скриптов премиум
      Мы не нашли установленный " -"копонент \"Менеджер скриптов\". Пожалуйста, установите копонент \"Менеджер " -"скриптов\" в первую очередь для премиум-функций!" - -#: assets-manager-premium/assets-manager-premium.php:63 -msgid "Webcraftic assets manager Premium" -msgstr "Webcraftic менеджер скриптов премиум" - -#: assets-manager-premium/includes/class.configurate-assets.php:92 -#: assets-manager/includes/class.configurate-assets.php:204 -#: assets-manager/includes/class.configurate-assets.php:208 -msgid "Total requests" -msgstr "Всего запросов" - -#: assets-manager-premium/includes/class.configurate-assets.php:93 -#: assets-manager/includes/class.configurate-assets.php:205 -msgid "Total size" -msgstr "Общий вес" - -#: assets-manager-premium/includes/class.configurate-assets.php:94 -#: assets-manager/includes/class.configurate-assets.php:206 -msgid "Optimized size" -msgstr "Оптим. вес" - -#: assets-manager-premium/includes/class.configurate-assets.php:95 -#: assets-manager/includes/class.configurate-assets.php:212 -msgid "Disabled js" -msgstr "Отключено js" - -#: assets-manager-premium/includes/class.configurate-assets.php:96 -#: assets-manager/includes/class.configurate-assets.php:213 -msgid "Disabled css" -msgstr "Отключено css" - -#: assets-manager-premium/includes/class.configurate-assets.php:119 -#: assets-manager/includes/class.configurate-assets.php:266 -msgid "Safe mode" -msgstr "Безопасный режим" - -#: assets-manager-premium/includes/class.configurate-assets.php:300 -#: assets-manager/includes/class.configurate-assets.php:685 -msgid "Example" -msgstr "Пример" - -#: assets-manager-premium/includes/class.configurate-assets.php:300 -#: assets-manager/includes/class.configurate-assets.php:685 -msgid "Enter URL (set * for mask)" -msgstr "Введите URL (добавьте * для маски)" - -#: assets-manager-premium/includes/class.configurate-assets.php:308 -#: assets-manager-premium/includes/class.configurate-assets.php:316 -#: assets-manager/includes/class.configurate-assets.php:688 -msgid "Add field" -msgstr "Добавить" - -#: assets-manager-premium/includes/class.configurate-assets.php:327 -#: assets-manager/includes/class.configurate-assets.php:698 -msgid "Enter regular expression" -msgstr "Введите регулярное выражение" - -#: assets-manager-premium/includes/class.configurate-assets.php:532 -msgid "Custom URL" -msgstr "Произвольный URL" - -#: assets-manager-premium/includes/class.configurate-assets.php:533 -msgid "Regular expression" -msgstr "Регулярное выражение" - -#: assets-manager-premium/includes/class.configurate-assets.php:595 -msgid "Set the plugin logic to apply it to all plugin’s resources." -msgstr "" -"Установите логику плагина, чтобы применить его ко всем ресурсам плагина." - -#: assets-manager/admin/boot.php:48 -#: assets-manager/admin/pages/assets-manager.php:89 -msgid "Disable assets manager" -msgstr "Отключить менеджер скриптов" - -#: assets-manager/admin/boot.php:55 -#: assets-manager/admin/pages/assets-manager.php:113 -msgid "Disable assets manager panel" -msgstr "Скрыть панель в админбаре" - -#: assets-manager/admin/boot.php:61 -#: assets-manager/admin/pages/assets-manager.php:122 -msgid "Disable assets manager on front" -msgstr "Отключить менеджер скриптов на внешней стороне сайта" - -#: assets-manager/admin/boot.php:67 -#: assets-manager/admin/pages/assets-manager.php:131 -msgid "Disable assets manager on back-end" -msgstr "Отключить менеджер скриптов в админпанели" - -#: assets-manager/admin/boot.php:73 -msgid "Assets manager options" -msgstr "Настройки менеджера скриптов" - -#: assets-manager/admin/boot.php:86 -msgid "Get ultimate plugin free" -msgstr "Получите полную версию плагина бесплатно" - -#: assets-manager/admin/pages/assets-manager.php:48 -#: assets-manager/admin/pages/assets-manager.php:67 -msgid "Assets manager" -msgstr "Менеджер скриптов" - -#: assets-manager/admin/pages/assets-manager.php:68 -msgid "General" -msgstr "Основные" - -#: assets-manager/admin/pages/assets-manager.php:82 -msgid "Disable unused scripts, styles, and fonts" -msgstr "Отключите неиспользуемые скрипты, стили и шрифты" - -#: assets-manager/admin/pages/assets-manager.php:82 -msgid "" -"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." -msgstr "" -"В админбаре есть кнопка под названием “Менеджер скриптов”, если на нее " -"нажать вы увидите список загружаемых скриптов, стилей и шрифтов на текущей " -"странице вашего сайта. Если вы считаете, что какой-то из ресурсов лишний на " -"этой странице, вы можете индивидуально его отключить, чтобы он не создавал " -"лишних запросов при загрузке. Используйте менеджер скриптов аккуратно, чтобы " -"не нарушить работу вашего сайта. Мы рекомендуем вам использовать локальный " -"сервер для тестирования этой функции." - -#: assets-manager/admin/pages/assets-manager.php:91 -msgid "Full disable of the module." -msgstr "Полностью отключает работу модуля." - -#: assets-manager/admin/pages/assets-manager.php:115 -msgid "" -"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." -msgstr "" -"По умолчанию в панели администратора есть кнопка для управления подключамыми " -"скриптами и стилями. Используя эту настроку вы можете скрыть эту панель из " -"админбара, чтобы она не занимала место." - -#: assets-manager/admin/pages/assets-manager.php:124 -msgid "Disables assets manager initialization for frontend." -msgstr "Отключает инициализацию менеджера лицензий на внешней стороне сайта." - -#: assets-manager/admin/pages/assets-manager.php:133 -msgid "Disables assets manager initialization for backend." -msgstr "Отключает инициализацию менеджера лицензий в админпанели сайта." - -#: assets-manager/gonzales.php:63 -msgid "Webcraftic assets manager" -msgstr "Webcraftic менеджер скриптов" - -#: assets-manager/includes/class.configurate-assets.php:121 -#: assets-manager/includes/class.configurate-assets.php:141 -msgid "Script Manager" -msgstr "Менеджер скриптов" - -#: assets-manager/includes/class.configurate-assets.php:208 -msgid "Total weight" -msgstr "Общий вес" - -#: assets-manager/includes/class.configurate-assets.php:208 -msgid "Optimized weight" -msgstr "Оптим. вес" - -#: assets-manager/includes/class.configurate-assets.php:215 -msgid "" -"This is the general statistics to see the optimization result. Available in " -"the paid version only." -msgstr "" -"Это общая статистика, чтобы увидеть результат оптимизации. Доступно только в " -"платной версии." - -#: assets-manager/includes/class.configurate-assets.php:219 -msgid "Reset" -msgstr "Сбросить" - -#: assets-manager/includes/class.configurate-assets.php:220 -msgid "Save" -msgstr "Сохранить" - -#: assets-manager/includes/class.configurate-assets.php:221 -msgid "" -"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" -msgstr "" -"В тестовом режиме можно поэкспериментировать с отключением неиспользуемых " -"скриптов безопасно для вашего сайта. Отключенные ресурсы будут видны только " -"вам (администратору), и все остальные пользователи получат " -"неоптимизированную версию сайта, пока вы не снимите галочку с этого элемента." - -#: assets-manager/includes/class.configurate-assets.php:222 -msgid "Safe mode PRO" -msgstr "Безопасный режим PRO" - -#: assets-manager/includes/class.configurate-assets.php:224 -msgid "Close" -msgstr "Закрыть" - -#: assets-manager/includes/class.configurate-assets.php:254 -msgid "" -"Important! Each page of your website has different sets of scripts and " -"styles files." -msgstr "" -"Важно! На каждой странице вашего сайта подключаются разные наборы файлов " -"скриптов и стилей. " - -#: assets-manager/includes/class.configurate-assets.php:255 -msgid "" -"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." -msgstr "" -"Используйте этот инструмент для отключения неиспользуемых скриптов и стилей, " -"устанавливая логику для разных типов страниц. Мы рекомендуем вам работать в " -"“Безопасном режиме”, так как вы можете нарушить работу сайта, если отключите " -"системные файлы скриптов, без которых невозможна полноценная работа сайта. В " -"безопасном режиме, все ваши изменения будут работать только для " -"администратора, это необходимо для того, чтобы только вы могли увидеть " -"результат оптимизации. Чтобы изменения вступили в силу для всех остальных " -"пользователей, просто снимите галочку “Безопасный режим”. " - -#: assets-manager/includes/class.configurate-assets.php:256 -#, php-format -msgid "" -"For more details and user guides, check the plugin’s documentation." -msgstr "" -"Более подробную информацию о работе с плагином можно найти в нашей документации." - -#: assets-manager/includes/class.configurate-assets.php:259 -msgid "Upgrade to Premium" -msgstr "Обновить до премиум" - -#: assets-manager/includes/class.configurate-assets.php:262 -msgid "MORE IN CLEARFY BUSINESS" -msgstr "БОЛЬШЕ В CLEARFY БИЗНЕС" - -#: assets-manager/includes/class.configurate-assets.php:263 -msgid "Disable plugins (groups of scripts)" -msgstr "Отключить плагины (группы скриптов)" - -#: assets-manager/includes/class.configurate-assets.php:264 -msgid "Conditions by the link template" -msgstr "Условия по шаблону ссылки" - -#: assets-manager/includes/class.configurate-assets.php:265 -msgid "Conditions by the regular expression" -msgstr "Условия по регулярному выражению" - -#: assets-manager/includes/class.configurate-assets.php:267 -msgid "Statistics and optimization results" -msgstr "Статистика и результаты оптимизации" - -#: assets-manager/includes/class.configurate-assets.php:304 -#: assets-manager/includes/class.configurate-assets.php:332 -msgid "Loaded" -msgstr "Загружен" - -#: assets-manager/includes/class.configurate-assets.php:305 -msgid "Plugin" -msgstr "Плагин" - -#: assets-manager/includes/class.configurate-assets.php:309 -#: assets-manager/includes/class.configurate-assets.php:338 -msgid "Load resource?" -msgstr "Загружать ресурс?" - -#: assets-manager/includes/class.configurate-assets.php:310 -#: assets-manager/includes/class.configurate-assets.php:339 -msgid "Conditions" -msgstr "Условия" - -#: assets-manager/includes/class.configurate-assets.php:318 -msgid "Author" -msgstr "Автор" - -#: assets-manager/includes/class.configurate-assets.php:319 -#: assets-manager/includes/class.configurate-assets.php:398 -msgid "Version" -msgstr "Версия" - -#: assets-manager/includes/class.configurate-assets.php:333 -msgid "Size" -msgstr "Размер" - -#: assets-manager/includes/class.configurate-assets.php:334 -msgid "Resource" -msgstr "Ресурс" - -#: assets-manager/includes/class.configurate-assets.php:362 -msgid "In use by" -msgstr "Используется " - -#: assets-manager/includes/class.configurate-assets.php:369 -msgid "Requires" -msgstr "Зависимости" - -#: assets-manager/includes/class.configurate-assets.php:398 -msgid "--" -msgstr "" - -#: assets-manager/includes/class.configurate-assets.php:561 -#: assets-manager/includes/class.configurate-assets.php:1406 -msgid "No" -msgstr "Нет" - -#: assets-manager/includes/class.configurate-assets.php:561 -#: assets-manager/includes/class.configurate-assets.php:1406 -msgid "Yes" -msgstr "Да" - -#: assets-manager/includes/class.configurate-assets.php:577 -msgid "" -"Click the switch in the Load resource? column to display the " -"conditions for loading the resource." -msgstr "" -"Щелкните переключатель в этой колонке Загрузить ресурс?, чтобы " -"отобразить условия для загрузки ресурса." - -#: assets-manager/includes/class.configurate-assets.php:579 -msgid "" -"Set the plugin logic to apply it to all plugin’s resources. This feature " -"available at the paid version." -msgstr "" -"Устанавливая логику для плагина, она будет примена для всех его ресурсов. " -"Данная возможность доступна только в платной версии плагина." - -#: assets-manager/includes/class.configurate-assets.php:588 -#: assets-manager/includes/class.configurate-assets.php:612 -msgid "Current URL" -msgstr "Текущий URL" - -#: assets-manager/includes/class.configurate-assets.php:589 -msgid "Everywhere" -msgstr "Повсюду" - -#: assets-manager/includes/class.configurate-assets.php:590 -msgid "Custom URL (PRO)" -msgstr "Произвольная ссылка (PRO)" - -#: assets-manager/includes/class.configurate-assets.php:591 -msgid "Regular expression (PRO)" -msgstr "Регулярное выражение (PRO)" - -#: assets-manager/includes/class.configurate-assets.php:601 -msgid "Exclude" -msgstr "Исключить" - -#: assets-manager/includes/class.configurate-assets.php:601 -msgid "" -"You can disable this resource for all pages, except sections and page types " -"listed below. Specify sections and page types with the enabled resource." -msgstr "" -"Вы можете отключить этот ресурс на всех страницах вашего сайта, кроме " -"нижеперечисленных разделов и типов страниц. Отметьте разделы и типы страниц, " -"в которых вы не хотите отключать ресурс" - -#: assets-manager/includes/class.configurate-assets.php:685 -msgid "" -"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." -msgstr "" -"Вы можете отключить этот ресурс только на тех страницах, адрес которых будет " -"соответствовать установленному вами шаблону. К примеру, если вы установите " -"шаблон ссылки http://yoursite.test/profile/*, то ресурс будет отключен на " -"следующих страницах http://yoursite.test/profile/12, http://yoursite.test/" -"profile/43, http://yoursite.test/profile/999. Если вы не будете использовать " -"звездочку в вашем шаблоне, то плагин отключит ресурс, только на странице где " -"будет точное совпадение с установленной вами ссылкой. Эта функция доступна " -"только в платной версии плагина." - -#: assets-manager/includes/class.configurate-assets.php:698 -msgid "" -"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." -msgstr "" -"Регулярные выражения используются экспертами. С помощью этого инструмента вы " -"можете создать более гибкие условия для отключения ресурса. К примеру, если " -"вы установите такое выражение: ^([A-z0-9]+-)?gifts?, то ресурс будет " -"отключен на страницах http://yoursite.test/get-gift/, http://yoursite.test/" -"gift/, http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. Плагин " -"игнорирует обратный слеш в начале строки запроса, поэтому вы можете его " -"пропустить. Проверяйте свое регулярное выражение с помощью сервиса https://" -"regex101.com, чтобы вы были точно уверены, что в вашем регулярном выражении " -"нет ошибки. Эта функция доступна только в платной версии плагина." - -#: assets-manager/includes/class.configurate-assets.php:718 -msgid "Also disabled for pages" -msgstr "Также отключен для страниц" - -#: assets-manager/includes/class.configurate-assets.php:1293 -msgid "Minify and Combine" -msgstr "Минификация" - -#: assets-manager/includes/class.configurate-assets.php:1315 -msgid "remove version?" -msgstr "Удалить версию?" - -#: assets-manager/includes/class.configurate-assets.php:1315 -msgid "optimize?" -msgstr "оптимизировать?" - -#: assets-manager/includes/class.configurate-assets.php:1319 -msgid "" -"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." -msgstr "" -"Вы включили опцию "Удалить переменные запроса для статических " -"ресурсов" в плагине "Clearfy", в этой колонке настроек вы можете " -"исключить скрипты и стили, для которых вы хотите оставить переменые запроса. " -"Просто выберите \"Нет\", чтобы добавить файл в исключения.." - -#: assets-manager/includes/class.configurate-assets.php:1321 -msgid "" -"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." -msgstr "" -"Вы включили опцию "Оптимизировать js скрипты?" и "Оптимизировать " -"css" в плагине "Сжатие и Объединения". С помощью этой колонки " -"настроек, вы можете исключить скрипты и стили, которые вы не хотите " -"оптимизировать. Чтобы добавить файл в исключения просто нажмите кнопку \"Нет" -"\"." - -#: assets-manager/includes/class.configurate-assets.php:1323 -msgid "" -"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." -msgstr "" -"Вы включили опцию "Оптимизировать js скрипты?" и "Оптимизировать " -"css" в плагине "Autoptimize". С помощью этой колонки настроек, " -"вы можете исключить скрипты и стили, которые вы не хотите оптимизировать. " -"Чтобы добавить файл в исключения просто нажмите кнопку \"Нет\"." - -#~ msgid "" -#~ "We found that you use the plugin \"Clearfy - disable unused functions\", " -#~ "this plugin already has the same functions as \"Assets manager\", so you " -#~ "can disable the \"Assets manager\" plugin!" -#~ msgstr "" -#~ "Мы обнаружили, что вы используете плагин \"Clearfy - disable unused " -#~ "features\", этот плагин включает функционал \"WP Asset CleanUp\", вы " -#~ "можете деактивировать плагин \"Менеджер скриптов\"!" - -#~ msgid "" -#~ "Below you can disable/enable CSS and JS files on a per page/post basis, " -#~ "as well as by custom post types. We recommend testing this locally or on " -#~ "a staging site first, as you could break the appearance of your live " -#~ "site. If you aren't sure about a certain script, you can try clicking on " -#~ "it, as a lot of authors will mention their plugin or theme in the header " -#~ "of the source code." -#~ msgstr "" -#~ "Ниже вы можете включить/отключить использование CSS и JS файлов в " -#~ "записях, произвольных типах записей или страницах. Мы рекомендуем вам " -#~ "эксперементировать со скриптами на локальном хостинге или тестом сайте, " -#~ "так как вы можете нарушить работу сайта, если отключите системные файлы " -#~ "скриптов, без которых невозможна полноценная работа сайта. Если вы не " -#~ "уверены, для чего используется тот или иной файл, попробуйте нажать на " -#~ "ссылку под его заголовком, в открывшемся файле вы можете увидеть " -#~ "комментарий разработчика с ссылкой на описание плагина. Получив " -#~ "достаточную информацию о функциях плагина, вы сможете более уверенно " -#~ "включать или отключать его стили и скрипты." - -#~ msgid "" -#~ "If for some reason you run into trouble, you can always enable everything " -#~ "again to reset the settings." -#~ msgstr "" -#~ "Если по какой-то причине вы столкнулись с проблемами, вы всегда можете " -#~ "включить все опции, чтобы сбросить настройки." - -#~ msgid "Save settings" -#~ msgstr "Сохранить" - -#~ msgid "Hide panel in adminbar?" -#~ msgstr "Скрыть панель из админбара?" - -#~ msgid "State" -#~ msgstr "Состояние" - -#~ msgid "Script" -#~ msgstr "Скрипт" - -#~ msgid "In use" -#~ msgstr "Используется" - -#~ msgid "Disable" -#~ msgstr "Отключить" - -#~ msgid "Enable" -#~ msgstr "Включить" - -#~ msgid "Enabled" -#~ msgstr "Включить" - -#~ msgid "Disable everwhere to view enable settings." -#~ msgstr "" -#~ "Нужно включить опцию \"повсюду\", чтобы увидеть дополнительные настройки." - -#~ msgid "" -#~ "We found that you use the plugin \"Clearfy - disable unused functions\", " -#~ "this plugin already has the same functions as \"WP Asset CleanUp\", so " -#~ "you can disable the \"WP Asset CleanUp\" plugin!" -#~ msgstr "" -#~ "Мы обнаружили, что вы используете плагин \"Clearfy - disable unused " -#~ "features\", этот плагин включает функционал \"WP Asset CleanUp\", вы " -#~ "можете деактивировать плагин \"WP Asset CleanUp\"!" - -#~ msgid "Webcraftic Assets manager" -#~ msgstr "Webcraftic менеджер скриптов" - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"WP Asset CleanUp\"!" -#~ msgstr "" -#~ "Мы обнаружили, что вы используете плагин \"Clearfy - disable unused " -#~ "features\", этот плагин" diff --git a/wp-content/plugins/!clearfy/components/assets-manager/migrations/010100.php b/wp-content/plugins/!clearfy/components/assets-manager/migrations/010100.php deleted file mode 100644 index b1c972fb..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/migrations/010100.php +++ /dev/null @@ -1,26 +0,0 @@ -get_results("SELECT option_id, option_name, option_value FROM {$wpdb->prefix}options WHERE option_name LIKE 'wbcr-clearfy_%'"); - if( !empty($request) ) { - foreach($request as $option) { - $option_new_name = str_replace('wbcr-clearfy', WCL_Plugin::app() - ->getPrefix(), $option->option_name); - if( !get_option($option_new_name, false) ) { - $wpdb->query("UPDATE {$wpdb->prefix}options SET option_name='$option_new_name' WHERE option_id='{$option->option_id}'"); - } else { - delete_option($option->option_name); - } - } - }*/ - } - } \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/migrations/010108.php b/wp-content/plugins/!clearfy/components/assets-manager/migrations/010108.php deleted file mode 100644 index c6fd5308..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/migrations/010108.php +++ /dev/null @@ -1,226 +0,0 @@ - - * @since 2.0.0 - */ - public function install() { - - $old_plugin_options = get_option( $this->plugin->getPrefix() . 'assets_manager_options', [] ); - $save_mode = (int) get_option( $this->plugin->getPrefix() . 'for_admin_only', 0 ); - - $settings = get_option( $this->plugin->getPrefix() . 'assets_states', [] ); - - if ( ! empty( $old_plugin_options ) ) { - if ( ! function_exists( 'wbcr_gnz_deploy_mu_plugin' ) ) { - require_once WGZ_PLUGIN_DIR . '/includes/functions.php'; - } - - wbcr_gnz_deploy_mu_plugin(); - } - - if ( empty( $settings ) ) { - $settings['save_mode'] = (bool) $save_mode; - - if ( ! empty( $old_plugin_options['disabled'] ) ) { - foreach ( $old_plugin_options['disabled'] as $type => $assets ) { - if ( ! empty( $assets ) ) { - foreach ( $assets as $handle => $where ) { - $group_settings = &$settings[ $type ][ $handle ]; - - $exclude = $this->get_enabled_from_options( $old_plugin_options, $type, $handle ); - $this->where_to_condition( $where, $group_settings['visability'], $exclude ); - - if ( 'plugins' === $type ) { - $group_settings['load_mode'] = 'disable_assets'; - } - - $group_settings['visability'] = json_encode( $group_settings['visability'] ); - } - } - } - - $active_plugins = $this->get_active_plugins(); - - if ( ! empty( $active_plugins ) ) { - foreach ( (array) $active_plugins as $plugin_base ) { - $plugin_name_parts = explode( '/', $plugin_base ); - if ( 2 === sizeof( $plugin_name_parts ) ) { - $plugin_name = $plugin_name_parts[0]; - if ( empty( $settings['plugins'][ $plugin_name ]['load_mode'] ) ) { - $settings['plugins'][ $plugin_name ]['load_mode'] = 'enable'; - } - if ( empty( $settings['plugins'][ $plugin_name ]['visability'] ) ) { - $settings['plugins'][ $plugin_name ]['visability'] = ''; - } - - if ( ! empty( $settings['js'] ) ) { - $settings['plugins'][ $plugin_name ]['js'] = $settings['js']; - } - if ( ! empty( $settings['css'] ) ) { - $settings['plugins'][ $plugin_name ]['css'] = $settings['css']; - } - } - } - } - if ( ! empty( $settings['js'] ) ) { - $settings['theme']['js'] = $settings['misc']['js'] = $settings['js']; - unset( $settings['js'] ); - } - if ( ! empty( $settings['css'] ) ) { - $settings['theme']['css'] = $settings['misc']['css'] = $settings['css']; - unset( $settings['css'] ); - } - } - } - - //update_option( $this->plugin->getPrefix() . 'backend_assets_states', $settings ); - update_option( $this->plugin->getPrefix() . 'assets_states', $settings ); - } - - /** - * Get a list of active plugins. - * - * @author Alexander Kovalev - * @since 2.0.0 - * @return array - */ - private function get_active_plugins() { - if ( is_multisite() ) { - $active_network_plugins = (array) get_site_option( 'active_sitewide_plugins' ); - $active_network_plugins = array_keys( $active_network_plugins ); - $active_blog_plugins = (array) get_option( 'active_plugins' ); - - return array_unique( array_merge( $active_network_plugins, $active_blog_plugins ) ); - } - - return (array) get_option( 'active_plugins' ); - } - - /** - * @author Alexander Kovalev - * @since 2.0.0 - * - * @param $where - * @param $settings - * @param $exclude - */ - private function where_to_condition( $where, &$settings, $exclude ) { - if ( ! empty( $where['current'] ) ) { - foreach ( (array) $where['current'] as $current_url ) { - $settings[] = [ - 'type' => 'OR', - 'conditions' => [ - [ - 'param' => 'current-url', - 'operator' => 'equals', - 'type' => 'default', - 'value' => $current_url - ] - ] - ]; - } - } - if ( ! empty( $where['custom'] ) ) { - foreach ( (array) $where['custom'] as $custom_url ) { - $settings[] = [ - 'type' => 'OR', - 'conditions' => [ - [ - 'param' => 'location-page', - 'operator' => 'equals', - 'type' => 'text', - 'value' => $custom_url - ] - ] - ]; - } - } - if ( ! empty( $where['regex'] ) ) { - $settings[] = [ - 'type' => 'OR', - 'conditions' => [ - [ - 'param' => 'regular-expression', - 'operator' => 'equals', - 'type' => 'regexp', - 'value' => $where['regex'] - ] - ] - ]; - } - if ( ! empty( $where['everywhere'] ) ) { - $everywhere = [ - 'type' => 'OR', - 'conditions' => [ - [ - 'param' => 'location-some-page', - 'operator' => 'equals', - 'type' => 'select', - 'value' => 'base_web' - ] - ] - ]; - - if ( ! empty( $exclude ) ) { - foreach ( (array) $exclude as $group_name => $group ) { - foreach ( (array) $group as $item_id ) { - if ( ! in_array( $group_name, [ 'post_type', 'taxonomies', 'current' ] ) ) { - continue; - } - - switch ( $group_name ) { - case 'post_type': - $condition_param = 'location-post-type'; - $value = $item_id; - break; - case 'taxonomies': - $condition_param = 'location-taxonomy'; - $value = $item_id; - break; - case 'current': - $condition_param = 'current-url'; - $value = $item_id; - break; - /*case 'categories': - $condition_param = 'location-taxonomy'; - $value = ''; - break;*/ - } - - $everywhere['conditions'][] = [ - 'param' => $condition_param, - 'operator' => 'notequal', - 'type' => 'select', - 'value' => $value - ]; - } - } - } - - $settings[] = $everywhere; - } - } - - /** - * Get enabled from options - * - * @param $type - * @param $handle - * - * @return null - */ - private function get_enabled_from_options( $options, $type, $handle ) { - if ( isset( $options['enabled'] ) && isset( $options['enabled'][ $type ] ) && isset( $options['enabled'][ $type ][ $handle ] ) ) { - return $options['enabled'][ $type ][ $handle ]; - } - - return null; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/migrations/020005.php b/wp-content/plugins/!clearfy/components/assets-manager/migrations/020005.php deleted file mode 100644 index edff2520..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/migrations/020005.php +++ /dev/null @@ -1,20 +0,0 @@ -plugin->getPrefix() . 'assets_states', [] ); - - if ( ! empty( $settings ) ) { - if ( ! function_exists( 'wbcr_gnz_deploy_mu_plugin' ) ) { - require_once WGZ_PLUGIN_DIR . '/includes/functions.php'; - } - - wbcr_gnz_deploy_mu_plugin(); - } - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/mu-plugins/assets-manager.php b/wp-content/plugins/!clearfy/components/assets-manager/mu-plugins/assets-manager.php deleted file mode 100644 index da943856..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/mu-plugins/assets-manager.php +++ /dev/null @@ -1,534 +0,0 @@ -doing_ajax() || $this->doing_cron() || $this->doing_rest_api() ) { - return; - } - - $is_clearfy_active = false; - - $this->active_plugins = $this->get_active_plugins(); - - add_filter('wam/conditions/call_method', [$this, 'check_conditions_method'], 10, 4); - - if( $this->is_active_clearfy() ) { - $deactivate_components = $this->get_clearfy_deactivate_components(); - - if( empty($deactivate_components) || !in_array('assets_manager', $deactivate_components) ) { - $is_clearfy_active = true; - } - } - - $parent_plugin_dir = $this->get_parent_plugin_dir(); - - if( empty($parent_plugin_dir) || !file_exists($parent_plugin_dir) ) { - return; - } - - # Disable plugins only if Asset Manager and Clearfy are activated - if( $is_clearfy_active || $this->is_active_assets_manager_standalone() ) { - $this->settings = $this->get_assets_manager_options(); - - if( !empty($this->settings) ) { - if( is_multisite() ) { - add_filter('site_option_active_sitewide_plugins', array($this, 'disable_network_plugins'), 1); - } - - add_filter('option_active_plugins', array($this, 'disable_plugins'), 1); - add_filter('option_hack_file', array($this, 'hack_file_filter'), 1); - add_action('plugins_loaded', array($this, 'remove_plugin_filters'), 1); - } - } - } - - /** - * @param $hackFile - * - * @return mixed - * @author Alexander Kovalev - * @since 1.0.0 - * - */ - public function hack_file_filter($hackFile) - { - $this->remove_plugin_filters(); - - return $hackFile; - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - */ - public function remove_plugin_filters() - { - remove_action('option_active_plugins', array($this, 'disable_plugins'), 1); - } - - /** - * We control the disabling of plugins that are activated for the network. - * - * @author Alexander Kovalev - * @since 1.0.0 - */ - public function disable_network_plugins($plugins_list) - { - $new_plugin_list = $plugins_list; - - if( is_array($plugins_list) && !empty($plugins_list) ) { - $temp_plugin_list = array_keys($plugins_list); - $temp_plugin_list = $this->disable_plugins($temp_plugin_list); - - $new_plugin_list = array(); - foreach((array)$temp_plugin_list as $plugin_file) { - $new_plugin_list[$plugin_file] = $plugins_list[$plugin_file]; - } - } - - return $new_plugin_list; - } - - /** - * We control the disabling of plugins that are activated for blog. - * - * @param $plugins_list - * - * @return mixed - * @author Alexander Kovalev - * @since 1.0.0 - * - */ - public function disable_plugins($plugins_list) - { - if( !is_array($plugins_list) || empty($plugins_list) ) { - return $plugins_list; - } - - foreach((array)$plugins_list as $key => $plugin_base) { - if( $this->is_disabled_plugin($plugin_base) ) { - unset($plugins_list[$key]); - } - } - - return $plugins_list; - } - - /** - * Extra method for extend WGZ_Check_Conditions class. - * - * @param mixed $default - * @param string $method_name - * @param string $operator - * @param mixed $value - * - * @return mixed - * @since 1.0.7 - * - * @author Alexander Kovalev - */ - public function check_conditions_method($default, $method_name, $operator, $value) - { - $premium_plugin_dir = $this->get_parent_premium_plugin_dir(); - - if( $premium_plugin_dir && file_exists($premium_plugin_dir) ) { - require_once $premium_plugin_dir . '/includes/class-check-conditions.php'; - if( class_exists('WGNZP_Check_Conditions') ) { - $conditions = new WGNZP_Check_Conditions(); - - if( method_exists($conditions, $method_name) ) { - return $conditions->$method_name($operator, $value); - } - } - } - - return $default; - } - - /** - * Get a list of active plugins. - * - * @return array - * @since 1.0.0 - * @author Alexander Kovalev - */ - private function get_active_plugins() - { - if( is_multisite() ) { - $active_network_plugins = (array)get_site_option('active_sitewide_plugins'); - $active_network_plugins = array_keys($active_network_plugins); - $active_blog_plugins = (array)get_option('active_plugins'); - - return array_unique(array_merge($active_network_plugins, $active_blog_plugins)); - } - - return (array)get_option('active_plugins'); - } - - /** - * Determines whether the current plugin is disabled - * - * @param $plugin_base - * - * @return bool - * @author Alexander Kovalev - * @since 1.0.0 - * - */ - private function is_disabled_plugin($plugin_base) - { - - $white_plgins_list = array( - 'clearfy', // prod - 'wp-plugin-clearfy', // dev - 'gonzales', // prod - 'wp-plugin-gonzales', // dev - 'clearfy_package' // premium package - ); - - $plugin_base_part = explode('/', $plugin_base); - - # If plugin base is incorrect or plugin name in the white list - if( 2 !== sizeof($plugin_base_part) || in_array($plugin_base_part[0], $white_plgins_list) ) { - return false; - } - - if( !empty($this->settings['plugins']) && isset($this->settings['plugins'][$plugin_base_part[0]]) && 'disable_plugin' === $this->settings['plugins'][$plugin_base_part[0]]['load_mode'] ) { - require_once $this->get_parent_plugin_dir() . '/includes/classes/class-check-conditions.php'; - - if( !empty($this->settings['plugins'][$plugin_base_part[0]]['visability']) ) { - $condition = new WGZ_Check_Conditions($this->settings['plugins'][$plugin_base_part[0]]['visability']); - if( $condition->validate() ) { - return true; - } - } - } - - return false; - } - - /** - * Checks if the current request is a WP REST API request. - * - * Case #1: After WP_REST_Request initialisation - * Case #2: Support "plain" permalink settings - * Case #3: URL Path begins with wp-json/ (your REST prefix) - * Also supports WP installations in subfolders - * - * @author matzeeable https://wordpress.stackexchange.com/questions/221202/does-something-like-is-rest-exist - * @since 1.0.0 - * @return boolean - */ - private function doing_rest_api() - { - $prefix = rest_get_url_prefix(); - - $rest_route = isset($_GET['rest_route']) ? $_GET['rest_route'] : null; - - if( defined('REST_REQUEST') && REST_REQUEST // (#1) - || !is_null($rest_route) // (#2) - && strpos(trim($rest_route, '\\/'), $prefix, 0) === 0 ) { - return true; - } - - // (#3) - $rest_url = wp_parse_url(site_url($prefix)); - $current_url = wp_parse_url(add_query_arg(array())); - - return strpos($current_url['path'], $rest_url['path'], 0) === 0; - } - - /** - * Determines whether the current request is a WordPress Ajax request. - * - * @return bool True if it's a WordPress Ajax request, false otherwise. - * @since 1.0.0 - */ - private function doing_ajax() - { - if( function_exists('wp_doing_ajax') ) { - return wp_doing_ajax(); - } - - return defined('DOING_AJAX') && DOING_AJAX; - } - - /** - * Determines whether the current request is a WordPress cron request. - * - * @return bool True if it's a WordPress cron request, false otherwise. - * @since 1.0.0 - */ - private function doing_cron() - { - if( function_exists('wp_doing_cron') ) { - return wp_doing_cron(); - } - - return defined('DOING_CRON') && DOING_CRON; - } - - /** - * Is Clearfy plugin actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_clearfy() - { - return $this->is_active_clearfy_dev() || $this->is_active_clearfy_prod(); - } - - /** - * Is Clearfy Dev plugin actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_clearfy_dev() - { - return in_array('wp-plugin-clearfy/clearfy.php', $this->active_plugins); - } - - /** - * Is Clearfy Prod plugin actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_clearfy_prod() - { - return in_array('clearfy/clearfy.php', $this->active_plugins); - } - - /** - * Is Assets Manager standalone actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_assets_manager_standalone() - { - return $this->is_active_assets_manager_standalone_prod() || $this->is_active_assets_manager_standalone_dev(); - } - - /** - * Is Assets Manager standalone prod actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_assets_manager_standalone_prod() - { - return in_array('gonzales/gonzales.php', $this->active_plugins); - } - - /** - * Is Assets Manager standalone dev actives? - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function is_active_assets_manager_standalone_dev() - { - return in_array('wp-plugin-gonzales/gonzales.php', $this->active_plugins); - } - - /** - * Get options prefix - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function get_options_prefix() - { - if( $this->is_active_clearfy() ) { - return self::CLEARFY_OPTIONS_PREFIX; - } - - return self::DEFAULT_OPTIONS_PREFIX; - } - - /** - * Get Clearfy deactivated components - * - * @return array|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function get_clearfy_deactivate_components() - { - if( is_multisite() ) { - return get_site_option($this->get_options_prefix() . 'deactive_preinstall_components', array()); - } - - return get_option($this->get_options_prefix() . 'deactive_preinstall_components', array()); - } - - /** - * Get Assets Manager options - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function get_assets_manager_options() - { - if( is_multisite() && is_network_admin() ) { - return get_site_option($this->get_options_prefix() . 'backend_assets_states', array()); - } else if( is_admin() ) { - return get_option($this->get_options_prefix() . 'backend_assets_states', array()); - } - - return get_option($this->get_options_prefix() . 'assets_states', array()); - } - - /** - * Get parent plugin dir - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function get_parent_plugin_dir() - { - if( $this->is_active_clearfy() ) { - if( $this->is_active_clearfy_dev() ) { - return WP_PLUGIN_DIR . '/wp-plugin-clearfy/components/assets-manager/'; - } - - return WP_PLUGIN_DIR . '/clearfy/components/assets-manager/'; - } else if( $this->is_active_assets_manager_standalone() ) { - if( $this->is_active_assets_manager_standalone_dev() ) { - return WP_PLUGIN_DIR . '/wp-plugin-gonzales/'; - } - - return WP_PLUGIN_DIR . '/gonzales/'; - } - - return null; - } - - /** - * Get premium plugin dir in dependence on environment - * - * @return string|null - * @author Alexander Kovalev - * @since 1.0.7 - */ - private function get_parent_premium_plugin_dir() - { - $is_active_prod = in_array('clearfy_package/clearfy-package.php', $this->active_plugins); - $is_active_dev = in_array('wp-plugin-clearfy-package/clearfy-package.php', $this->active_plugins); - $is_active_stand_alone_prod = in_array('assets-manager-premium/assets-manager-premium.php', $this->active_plugins); - $is_active_stand_alone_dev = in_array('wp-plugin-assets-manager-premium/assets-manager-premium.php', $this->active_plugins); - - if( $is_active_dev ) { - $premium_plugin_dir = WP_PLUGIN_DIR . '/wp-plugin-clearfy-package/plugins/assets-manager-premium'; - } else if( $is_active_prod ) { - $premium_plugin_dir = WP_PLUGIN_DIR . '/clearfy_package/plugins/assets-manager-premium'; - } else if( $is_active_stand_alone_prod ) { - $premium_plugin_dir = WP_PLUGIN_DIR . '/assets-manager-premium/'; - } else if( $is_active_stand_alone_dev ) { - $premium_plugin_dir = WP_PLUGIN_DIR . '/wp-plugin-assets-manager-premium/'; - } else { - return null; - } - - return wp_normalize_path($premium_plugin_dir); - } -} - -new WGNZ_Plugins_Loader(); -// @formatter:on diff --git a/wp-content/plugins/!clearfy/components/assets-manager/readme.txt b/wp-content/plugins/!clearfy/components/assets-manager/readme.txt deleted file mode 100644 index 05e6e63d..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/readme.txt +++ /dev/null @@ -1,162 +0,0 @@ -=== Wordpress Assets manager, dequeue scripts, dequeue styles === -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 -Contributors: webcraftic, creativemotion, alexkovalevv -Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW -Requires at least: 5.6 -Tested up to: 6.7 -Requires PHP: 7.2 -Stable tag: trunk -License: GPLv2 - -Increase the speed of the pages by disabling unused scripts (.JS) and styles (.CSS). Make your website REACTIVE! - -== Description == - -You should know that, a lot of WordPress plugins developers forget performance when creating plugins. This means that a lot of them load self scripts/styles on every single post and or page of your site. This is not good, because it slows your site down. - -That's why we created the WP Asset manager, with it, you can choose which scripts and styles should be loaded on the page, and which ones do not. One example of this would be with the Contact Form 7 plugin. With two clicks you can disable it everywhere except for on your contact page. - -THIS PLUGIN’S BENEFITS INCLUDE - -Decreases number of HTTP requests loaded (important for faster load) -Reduces the HTML code of the actual page (that’s even better if GZIP compression is enabled) -Makes source code easier to scan in case you’re a developer and want to search for something -Remove possible conflicts between plugins/theme (e.g. 2 JavaScript files that are loading from different plugins and they interfere one with another) -Better performance score if you test your URL on websites such as GTmetrix, PageSpeed Insights, Pingdom Website Speed Test -Google will love your website more as it would be faster and fast page load is nowadays a factor in search ranking -Your server access log files (e.g the Apache ones) will be easier to scan and would take less space on your server - -We used some useful functions from plugins Asset Queue Manager, WP Asset CleanUp (Page Speed Optimizer), Clearfy – disable unused features, wp disable, Disabler, Admin Tweaks - -== Translations == - -* English - default, always included -* French - Thank you very much to user (kingteamdunet) -* Russian - -If you want to help with the translation, please contact me through this site or through the contacts inside the plugin. - -#### Recommended separate modules #### - -We invite you to check out a few other related free plugins that our team has also produced that you may find especially useful: - -* [Clearfy – WordPress optimization plugin and disable ultimate tweaker](https://wordpress.org/plugins/clearfy/) -* [Disable Comments for Any Post Types (Remove Comments)](https://wordpress.org/plugins/comments-plus/) -* [Cyrlitera – transliteration of links and file names](https://wordpress.org/plugins/cyrlitera/) -* [Cyr-to-lat reloaded – transliteration of links and file names](https://wordpress.org/plugins/cyr-and-lat/ "Cyr-to-lat reloaded") -* [Disable admin notices individually](https://wordpress.org/plugins/disable-admin-notices/ "Disable admin notices individually") -* [Hide login page](https://wordpress.org/plugins/hide-login-page/ "Hide login page") -* [Disable updates, Disable automatic updates, Updates manager](https://wordpress.org/plugins/webcraftic-updates-manager/) - -== Installation == - -1. Upload the plugin folder to the `/wp-content/plugins/` directory -2. Activate the plugin through the 'Plugins' menu in WordPress -3. The plugin settings can be accessed via the 'Settings' menu in the administration area (either your site administration for single-site installs). - -== Screenshots == -1. Control panel -2. Assets manager - -== Changelog == -= 2.1.9 (05.12.2024) = -* Added: Compatibility with Wordpress 6.7 - -= 2.1.8 (21.03.2024) = -* Added: Compatibility with Wordpress 6.5 -* Added: Compatibility with php 8.3 - -= 2.1.7 (21.11.2023) = -* Added: Compatibility with Wordpress 6.4 -* Added: Compatibility with php 8.2 - -= 2.1.6 (22.03.2023) = -* Fixed: Freemius framework conflict -* Added: Compatibility with Wordpress 6.2 - -= 2.1.4 (27.05.2022) = -* Compatibility with Wordpress 6.0 - -= 2.1.3 (21.03.2022) = -* Fixed: Compatibility with Disable admin notices plugin - -= 2.1.2 (21.03.2022) = -* Compatibility with Wordpress 5.2 - 5.9.x -* Fixed: Minor bug - -= 2.1.0 (21.12.2020) = -* Added: Compatibility with Wordpress 5.8 -* Fixed: Minor bugs - -= 2.0.7 (21.12.2020) = -* Disabled search by options for a single plugin. -* Fixed: duplicate templates and scripts error when rendering html views of Assets manager. - -= 2.0.6 (15.12.2020) = -* Added: Subscribe form -* Fixed: Minor bug - -= 2.0.5 (12.02.2020) = -* Fixed: Minor bug - -= 2.0.4 (10.12.2019) = -* Fixed: Bug "[Warning message when open the Customize](https://wordpress.org/support/topic/warning-message-when-open-the-customize/)". -* Fixed: Conditional logic in the premium plugin didn't work in previous version due an error. -* Added: You can control asset requires. Now if you disabled asset and it required for which other asset, you will get prompt with warning. -* Added: If you click on the "requires" tag, you will be gone to the asset for which require the current asset. - -= 2.0.3 (13.11.2019) = -* Fixed: Minor bugs. Comment head of mu plugin determined as main. - -= 2.0.2 (13.11.2019) = -* Fixed: Minor bugs. Added an admin notice about great release. - -= 2.0.1 (12.10.2019) = -* Fixed: The bug with save mode. -* Fixed: Some conditions (entire website) didn't work. It could be due save mode. -* Fixed: Critical a php error which related "Call to undefined function wp_scripts_get_suffix". - -= 2.0.0 (03.10.2019) = -* The interface has become more compact and friendly. -* The speed and productivity of the editor is increased, it loads faster and does not freeze, as it was before. -* Extended conditional logic has been added, now you can create complex conditions for disabling assets. -* An additional mode has appeared to completely disable the plugin (you can disable not only scripts, but also stop executing plugin scripts). -* Known bugs in the previous version are fixed. - -= 1.1.0 = -* Added: Compatibility with Wordpress 4.2 - 5.x -* Added: Multisite support -* Fixed: Minor bugs - -= 1.0.7 = -* Fixed: Added compatibility with ithemes sync -* Fixed: Minor style fixes - -= 1.0.6 = -* Fixed: Fixed a bug when the interface did not open on the frontend. - -= 1.0.5 = -Great update: -* We completely changed the interface design. Now it is more convenient for visual inspection of resource files. -* Fixed: All errors that users have reported about -* Added: Multisite support -* Added: New logic disabled scripts and styles -* Added: You can exclude assets from optimizing for Autoptimize and Clearfy plugins. -* Added: You can exclude resource files for which you do not need to remove the query string. -* Added: You can see which plugin the style file belongs to and the js file. -= 1.0.4 = -* Fixed: Update core -* Fixed: Compatibility with others plugin - -= 1.0.3 = -* Fixed: Compatibility with Clearfy plugin -* Fixed: The plugin interface did not work and the styles were not loaded due to security settings -* ADDED: Plugin options caching to reduce database queries for 90%. Clearfy became lighter and faster. -* ADDED: Compress and cache the plugin core files, to reduce the load on the admin panel - -= 1.0.2 = -* Fixed: Core bugs -* Fixed: Problems with the fonts in the assets manager - -= 1.0.0 = -* Plugin release diff --git a/wp-content/plugins/!clearfy/components/assets-manager/uninstall.php b/wp-content/plugins/!clearfy/components/assets-manager/uninstall.php deleted file mode 100644 index a2aa03d0..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/uninstall.php +++ /dev/null @@ -1,52 +0,0 @@ -query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wbcr_gonzales_%';" ); - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wbcr_gnz_%';" ); -} - -if ( is_multisite() ) { - global $wpdb, $wp_version; - - $wpdb->query( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE 'wbcr_gonzales_%';" ); - $wpdb->query( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE 'wbcr_gnz_%';" ); - - $blogs = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" ); - - if ( ! empty( $blogs ) ) { - foreach ( $blogs as $id ) { - - switch_to_blog( $id ); - - uninstall(); - - restore_current_blog(); - } - } -} else { - uninstall(); -} - -// Remove mu plugin -require_once WGZ_PLUGIN_DIR . '/includes/functions.php'; -// todo: for the function require the constant WGZ_PLUGIN_DIR -wbcr_gnz_remove_mu_plugin(); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/assets-manager.php b/wp-content/plugins/!clearfy/components/assets-manager/views/assets-manager.php deleted file mode 100644 index 838306ac..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/assets-manager.php +++ /dev/null @@ -1,37 +0,0 @@ - -
      - print_template( 'part-assets-manager-header', $data ); ?> -
      - print_template( 'part-assets-manager-tabs-menu' ); ?> - print_template( 'part-assets-manager-info-bar' ); ?> -
      - print_template( 'tab-content-assets', [ - 'type' => 'theme', - 'assets' => $data['theme_assets'] - ] ); ?> -
      -
      - print_template( 'tab-content-assets', [ - 'type' => 'misc', - 'assets' => $data['misc_assets'] - ] ); ?> -
      -
      - print_template( 'tab-content-assets-plugins', $data ); ?> -
      -
      - - - -
      \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/conditions-logic-editor-template.php b/wp-content/plugins/!clearfy/components/assets-manager/views/conditions-logic-editor-template.php deleted file mode 100644 index 0868e81c..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/conditions-logic-editor-template.php +++ /dev/null @@ -1,112 +0,0 @@ - -
      -
      -
      - - -
      -
      -
      -
      -
      -
      -
      - - - - -
      -
      - -
      -
      -
      -
      - - -
      -
      -
      -
      -
      -
      - - - - - - - - - - - - - - - -
      -
      - -
      -
      diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-header.php b/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-header.php deleted file mode 100644 index 847617fc..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-header.php +++ /dev/null @@ -1,41 +0,0 @@ - -
      -
      - -
        -
      • - : - -- -
      • -
      • - : - -- -
      • -
      • - : - -- -
      • -
      • : - -- -
      • -
      • : - -- -
      • -
      -
      -
      - - - - - - -
      -
      \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-info-bar.php b/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-info-bar.php deleted file mode 100644 index 1be749e9..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-info-bar.php +++ /dev/null @@ -1,44 +0,0 @@ - -
      -
      -

      - - - -

      -

      - -

      -

      - documentation.', 'gonzales' ), WGZ_Plugin::app()->get_support()->get_docs_url( true, 'docs' ) ) ?> -

      -
      - ' - -
      -

      - -

      -
        -
      • -
      • -
      • -
      • -
      • -
      -
      -
      \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-tabs-menu.php b/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-tabs-menu.php deleted file mode 100644 index 880a4bc2..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/part-assets-manager-tabs-menu.php +++ /dev/null @@ -1,16 +0,0 @@ - -
        -
      • -
        -
        -
        -
      • -
      \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/part-tab-content-assets-plugins-settings.php b/wp-content/plugins/!clearfy/components/assets-manager/views/part-tab-content-assets-plugins-settings.php deleted file mode 100644 index ad088a90..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/part-tab-content-assets-plugins-settings.php +++ /dev/null @@ -1,111 +0,0 @@ - -
      -
      - - -
      -
      - -
      -
      -
      -

      :

      - - - - - - - - - - $assets): ?> - $item): ?> - - - - - - - - - - - - - -
      - - - - - - - -
      - - - - -
      - - : - - -
      - - - : - - - - -
      -
      KB
      - -

      - You must set rules to disable the resource. - For example, if you select Page -> Equals -> All posts, then the script or style will not - loaded on all pages of type post.', 'gonzales') ?> -

      -
      - -
      -
      -
      diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets-plugins.php b/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets-plugins.php deleted file mode 100644 index e7a55d65..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets-plugins.php +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - -
      - - - $plugin ): ?> -
      - print_template( 'part-tab-content-assets-plugins-settings', $plugin ); ?> -
      - -
      \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets.php b/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets.php deleted file mode 100644 index dc5e7f61..00000000 --- a/wp-content/plugins/!clearfy/components/assets-manager/views/tab-content-assets.php +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - $assets): ?> - $item): ?> - - - - - - - - - - - - - -
      - - - - - - - -
      - - - - -
      - - : - - -
      - - - : - - - - -
      -
      KB
      - -

      - You must set rules to disable the resource. - For example, if you select Page -> Equals -> All posts, then the script or style will not - loaded on all pages of type post.', 'gonzales') ?> -

      -
      - -
      -
      diff --git a/wp-content/plugins/!clearfy/components/cache/admin/activation.php b/wp-content/plugins/!clearfy/components/cache/admin/activation.php deleted file mode 100644 index 3d7ea1dd..00000000 --- a/wp-content/plugins/!clearfy/components/cache/admin/activation.php +++ /dev/null @@ -1,43 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 09.03.2018, Webcraftic - * @see Wbcr_Factory480_Activator - * @version 1.0 - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -class WCACHE_Activation extends Wbcr_Factory480_Activator { - - /** - * Runs activation actions. - * - * @since 1.0.0 - */ - public function activate() - { - require_once WCACHE_PLUGIN_DIR . '/includes/cache.php'; - try { - WCL_Cache::activate(); - } catch( Exception $e ) { - //nothing - } - } - - public function deactivate() - { - require_once WCACHE_PLUGIN_DIR . '/includes/cache.php'; - try { - WCL_Cache::deactivate(); - } catch( Exception $e ) { - //nothing - } - } -} diff --git a/wp-content/plugins/!clearfy/components/cache/admin/boot.php b/wp-content/plugins/!clearfy/components/cache/admin/boot.php deleted file mode 100644 index 2fd49d46..00000000 --- a/wp-content/plugins/!clearfy/components/cache/admin/boot.php +++ /dev/null @@ -1,238 +0,0 @@ - - * @copyright (c) 03.06.2020, Webcraftic - * @version 1.0 - */ - -add_filter('wbcr/clearfy/adminbar_menu_items', function ($menu_items) { - $nonce = wp_create_nonce('wclearfy_cache_delete'); - - $menu_items['clearfy-clear-all-cache'] = [ - 'id' => 'clearfy-clear-all-cache', - 'title' => ' ' . __('Clear all cache', 'clearfy'), - 'href' => esc_url(add_query_arg([ - 'wclearfy_cache_delete' => '1', - '_wpnonce' => $nonce - ])) - ]; - - return $menu_items; -}); - -add_filter("wbcr_clearfy_group_options", function ($options) { - $options[] = [ - 'name' => 'enable_cache', - 'title' => __('Enable cache', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - $options[] = [ - 'name' => 'dont_cache_for_logged_in_users', - 'title' => __('Don\'t cache for logged-in users', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - $options[] = [ - 'name' => 'cache_reject_uri', - 'title' => __('Never Cache URL(s)', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'preload_cache', - 'title' => __('Preload cache', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'clear_cache_for_newpost', - 'title' => __('Clear cache for new post', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - $options[] = [ - 'name' => 'exclude_files', - 'title' => __('Filenames that can be cached', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'exclude_pages', - 'title' => __('Rejected User Agents', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'gzip', - 'title' => __('Gzip', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - $options[] = [ - 'name' => 'browser_caching', - 'title' => __('Browser Caching', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - $options[] = [ - 'name' => 'cache_mobile', - 'title' => __('Mobile', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'cache_mobile_theme', - 'title' => __('Create cache for mobile theme', 'clearfy'), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'widget_cache', - 'title' => __('Widget Cache', 'clearfy'), - 'tags' => ['optimize_performance'] - ]; - - return $options; -}); - -add_action('wclearfy/setup_wizard/speed_optimize_step/continue_step', function () { - require_once WCACHE_PLUGIN_DIR . '/includes/helpers.php'; - try { - \WCL_Cache_Helpers::modifyHtaccess(); - } catch( \Exception $e ) { - - } -}); - -add_filter('wclearfy/setup_wizard/speed_optimize_step/form_options', function ($options) { - array_unshift($options, [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'enable_cache', - 'title' => __('Enable cache', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('This option enable cache to generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.', 'clearfy'), - 'default' => true - ], [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'gzip', - 'title' => __('Gzip', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Reduce the size of page decrease the page load time a lot. You can reduce the size of page with GZIP compression feature. - -If the size of requested files are big, loading takes time so in this case there is needed to reduce the size of files. Gzip Compression feature compresses the pages and resources before sending so the transfer time is reduced.', 'clearfy'), - 'default' => false - ], [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'browser_caching', - 'title' => __('Browser Caching', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Reduce the load times of pages by storing commonly used files from your website on your visitors browser. - -A browser loads the css, js, images resources to display the web page to the visitors. This process is always performed. - -If the commonly used files are cached by browser, the visitors’ browsers do not have to load them evert time so the load times of pages are reduced.', 'clearfy'), - 'default' => false - ]); - - return $options; -}); - -add_action('wclearfy/cache/settings_page/after_form_save', function () { - if( WCL_Cache_Helpers::is_nginx() && WCL_Plugin::app()->getPopulateOption('enable_cache') ) { - wp_redirect(WCL_Plugin::app()->getPluginPageUrl('clearfy_cache_nginx_rules')); - exit; - } -}, 10); - -add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $page) { - if( "clearfy_cache" === $page->id ) { - if( WCL_Cache_Helpers::is_nginx() && WCL_Plugin::app()->getPopulateOption('enable_cache') ) { - $button = '
      NGINX configuration'; - $page->printWarningNotice("

      " . __("Clearfy will work out of the box on NGINX servers. But if you want to get the best performance results, place the NGINX rules we generated in your server config. It enables NGINX to directly serve previously cached files without calling WordPress or any PHP. It also adds headers to cached CSS, JS, and images via browser cache.", 'wbcr_factory_pages_480') . "

      " . $button); - } - } -}, 10, 2); - -add_filter('wclearfy/cache/htaccess_rules', function ($htaccess) { - $gzip = WCL_Plugin::app()->getPopulateOption('gzip'); - - if( $gzip ) { - $data = "# BEGIN GzipWClearfyCache" . "\n" . "" . "\n" . "AddType x-font/woff .woff" . "\n" . "AddType x-font/ttf .ttf" . "\n" . "AddOutputFilterByType DEFLATE image/svg+xml" . "\n" . "AddOutputFilterByType DEFLATE text/plain" . "\n" . "AddOutputFilterByType DEFLATE text/html" . "\n" . "AddOutputFilterByType DEFLATE text/xml" . "\n" . "AddOutputFilterByType DEFLATE text/css" . "\n" . "AddOutputFilterByType DEFLATE text/javascript" . "\n" . "AddOutputFilterByType DEFLATE application/xml" . "\n" . "AddOutputFilterByType DEFLATE application/xhtml+xml" . "\n" . "AddOutputFilterByType DEFLATE application/rss+xml" . "\n" . "AddOutputFilterByType DEFLATE application/javascript" . "\n" . "AddOutputFilterByType DEFLATE application/x-javascript" . "\n" . "AddOutputFilterByType DEFLATE application/x-font-ttf" . "\n" . "AddOutputFilterByType DEFLATE x-font/ttf" . "\n" . "AddOutputFilterByType DEFLATE application/vnd.ms-fontobject" . "\n" . "AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf" . "\n" . "" . "\n"; - - if( defined("WCLEARFY_GZIP_FOR_COMBINED_FILES") && WCLEARFY_GZIP_FOR_COMBINED_FILES ) { - $data = $data . "\n" . '' . "\n" . "# to zip the combined css and js files" . "\n\n" . "RewriteEngine On" . "\n" . "RewriteCond %{HTTP:Accept-encoding} gzip" . "\n" . "RewriteCond %{REQUEST_FILENAME}\.gz -s" . "\n" . "RewriteRule ^(.*)\.(css|js) $1\.$2\.gz [QSA]" . "\n\n" . "# to revent double gzip and give the correct mime-type" . "\n\n" . "RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=FORCE_GZIP]" . "\n" . "RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=FORCE_GZIP]" . "\n" . "Header set Content-Encoding gzip env=FORCE_GZIP" . "\n" . "" . "\n"; - } - - $data = $data . "# END GzipWClearfyCache" . "\n"; - - $htaccess = preg_replace("/\s*\#\s?BEGIN\s?GzipWClearfyCache.*?#\s?END\s?GzipWClearfyCache\s*/s", "", $htaccess); - - return $data . $htaccess; - } else { - //delete gzip rules - $htaccess = preg_replace("/\s*\#\s?BEGIN\s?GzipWClearfyCache.*?#\s?END\s?GzipWClearfyCache\s*/s", "", $htaccess); - - return $htaccess; - } -}); - -add_filter('wclearfy/cache/htaccess_rules', function ($htaccess) { - $browser_caching = WCL_Plugin::app()->getPopulateOption('browser_caching'); - - if( $browser_caching ) { - - $data = " -# BEGIN LBCWClearfyCache - -ExpiresActive on -ExpiresDefault 'access plus 1 month' -ExpiresByType text/cache-manifest 'access plus 0 seconds' -ExpiresByType text/html 'access plus 0 seconds' -ExpiresByType text/xml 'access plus 0 seconds' -ExpiresByType application/xml 'access plus 0 seconds' -ExpiresByType application/json 'access plus 0 seconds' -ExpiresByType application/rss+xml 'access plus 1 hour' -ExpiresByType application/atom+xml 'access plus 1 hour' -ExpiresByType image/x-icon 'access plus 1 week' -ExpiresByType image/gif 'access plus 4 months' -ExpiresByType image/png 'access plus 4 months' -ExpiresByType image/jpeg 'access plus 4 months' -ExpiresByType image/webp 'access plus 4 months' -ExpiresByType video/ogg 'access plus 4 months' -ExpiresByType audio/ogg 'access plus 4 months' -ExpiresByType video/mp4 'access plus 4 months' -ExpiresByType video/webm 'access plus 4 months' -ExpiresByType text/x-component 'access plus 1 month' -ExpiresByType font/ttf 'access plus 4 months' -ExpiresByType font/otf 'access plus 4 months' -ExpiresByType font/woff 'access plus 4 months' -ExpiresByType font/woff2 'access plus 4 months' -ExpiresByType image/svg+xml 'access plus 1 month' -ExpiresByType application/vnd.ms-fontobject 'access plus 1 month' -ExpiresByType text/css 'access plus 1 year' -ExpiresByType application/javascript 'access plus 1 year' - -# END LBCWClearfyCache"; - - if( !preg_match("/BEGIN\s*LBCWClearfyCache/", $htaccess) ) { - return $data . $htaccess; - } else { - return $htaccess; - } - } else { - //delete levere browser caching - $htaccess = preg_replace("/#\s?BEGIN\s?LBCWClearfyCache.*?#\s?END\s?LBCWClearfyCache/s", "", $htaccess); - - return $htaccess; - } -}); - -//add_action('wfactory/activated_' . WCL_Plugin::app()->getPluginName() . '_component', function ($component_name) { -//todo: Проверить совместимость с плагинами, включить или отключить компонент в зависимсти от результатов -//}); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/admin/pages/class-pages-nginx-rules.php b/wp-content/plugins/!clearfy/components/cache/admin/pages/class-pages-nginx-rules.php deleted file mode 100644 index 90b2a3d0..00000000 --- a/wp-content/plugins/!clearfy/components/cache/admin/pages/class-pages-nginx-rules.php +++ /dev/null @@ -1,221 +0,0 @@ -menu_title = __('Nginx Rules', 'clearfy'); - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - public function getPageTitle() - { - return __('Nginx Rules', 'clearfy'); - } - - public function showPageContent() - { - ?> -
      -

      -

      - -

      -

      - -

      -

      - -

      -
      - -
      -
      - " Read More", - 99 => "define('WP_CACHE', true); is needed to be added into wp-config.php", - 100 => "You have to set permalinks", - 101 => "Fast Velocity Minify needs to be deactivated", - 102 => 'Far Future Expiration Plugin needs to be deactivated', - 103 => "SG Optimizer needs to be deactived", - 104 => "AdRotate needs to be deactived", - 105 => "MobilePress needs to be deactived", - 106 => "Speed Booster Pack needs to be deactived", - 107 => "WP Performance Score Booster needs to be deactivated
      This plugin has aldready Gzip, Leverage Browser Caching features", - 109 => "Check and Enable GZIP compression needs to be deactivated
      This plugin has aldready Gzip feature", - 110 => "GZippy needs to be deactivated
      This plugin has aldready Gzip feature", - 111 => "GZip Ninja Speed Compression needs to be deactivated
      This plugin has aldready Gzip feature", - 112 => "WordPress Gzip Compression needs to be deactivated
      This plugin has aldready Gzip feature", - 113 => "GZIP Output needs to be deactivated
      This plugin has aldready Gzip feature", - 114 => "Head Cleaner needs to be deactivated", - 115 => "Far Future Expiration Plugin needs to be deactivated", - ]; - - - /** - * @param WCL_Plugin $plugin - */ - public function __construct(WCL_Plugin $plugin) - { - $this->menu_title = __('Cache', 'clearfy'); - $this->page_menu_short_description = __('Cache pages', 'clearfy'); - - if( $plugin->premium->is_activate() && $plugin->premium->is_install_package() ) { - $this->available_for_multisite = true; - } - - parent::__construct($plugin); - - $this->plugin = $plugin; - } - - /** - * We register notifications for some actions - * - * @param $notices - * @param \Wbcr_Factory480_Plugin $plugin - * - * @return array - * @see libs\factory\pages\themplates\FactoryPages480_ImpressiveThemplate - */ - public function getActionNotices($notices) - { - - $notices[] = [ - 'conditions' => [ - 'wclearfy-cache-cleared' => 1 - ], - 'type' => 'success', - 'message' => 'Cache has been cleared!' - ]; - - foreach($this->errors as $key => $error_message) { - $notices[] = [ - 'conditions' => [ - 'wclearfy-cache-error' => $key - ], - 'type' => 'danger', - 'message' => $error_message - ]; - } - - return $notices; - } - - /** - * Permalinks options. - * - * @return mixed[] - * @since 1.0.0 - */ - public function getPageOptions() - { - $options = []; - - $options[] = [ - 'type' => 'html', - 'html' => '
      ' . __('Cache settings', 'clearfy') . '

      ' . __('A very fast caching engine for WordPress that produces static html files. You can configure caching in this section.', 'clearfy') . '

      ' - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'enable_cache', - 'title' => __('Enable cache', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('This option enable cache to generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'dont_cache_for_logged_in_users', - 'title' => __('Don\'t cache for logged-in users', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Don\'t show the cached version for logged-in users', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'gzip', - 'title' => __('Gzip', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Reduce the size of page decrease the page load time a lot. You can reduce the size of page with GZIP compression feature. - -If the size of requested files are big, loading takes time so in this case there is needed to reduce the size of files. Gzip Compression feature compresses the pages and resources before sending so the transfer time is reduced.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'browser_caching', - 'title' => __('Browser Caching', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'], - 'hint' => __('Reduce the load times of pages by storing commonly used files from your website on your visitors browser. - -A browser loads the css, js, images resources to display the web page to the visitors. This process is always performed. - -If the commonly used files are cached by browser, the visitors’ browsers do not have to load them evert time so the load times of pages are reduced.', 'clearfy'), - 'default' => false - ]; - - $options[] = [ - 'type' => 'textarea', - 'name' => 'cache_reject_uri', - 'title' => __('Never Cache URL(s)', 'clearfy'), - //'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Specify URLs of pages or posts that should never be cached (one per line). The domain part of the URL will be stripped automatically. -Use (.*) wildcards to address multiple URLs under a given path.', 'clearfy'), - ]; - - $options[] = [ - 'type' => 'textarea', - 'name' => 'cache_reject_user_agents', - 'title' => __('Rejected User Agents', 'clearfy'), - 'default' => "facebookexternalhit\nTwitterbot\nLinkedInBot\nWhatsApp\nMediatoolkitbot", - //'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Strings in the HTTP ’User Agent’ header that prevent WP-Cache from caching bot, spiders, and crawlers’ requests. Note that super cached files are still sent to these agents if they already exists.', 'clearfy'), - ]; - - $options[] = [ - 'type' => 'textarea', - 'name' => 'cache_reject_cookies', - 'title' => __('Rejected Cookies', 'clearfy'), - //'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Do not cache pages when these cookies are set. Add the cookie names here, one per line. Matches on fragments, so "test" will match "WordPress_test_cookie". (Simple caching only)', 'clearfy'), - ]; - - $options[] = [ - 'type' => 'more-link', - 'name' => 'cache-group', - 'title' => __('Advanced options', 'clearfy'), - 'count' => 8, - 'items' => [ - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'cache_mobile', - 'title' => __('Mobile', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __("Don't show the cached version for desktop to mobile devices", 'clearfy'), - 'default' => false - ], - - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'cache_mobile_theme', - 'title' => __('Create cache for mobile theme', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('If you use a mobile theme, you should enable both “Mobile” and “Create cache for mobile theme” options. If you use a responsive theme, no need to use the mobile cache feature. You should disable “Mobile” and “Create cache for mobile theme” options.', 'clearfy'), - 'default' => false, - ], - - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'widget_cache', - 'title' => __('Widget Cache', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('You can reduce the number of sql queries with this feature. - -When “Cache System” is enabled, the page is saved as a static html file, thus PHP and MySQL does not work for the page which has been cached. MySQL and PHP work to generate the html of the other pages which have not been cached yet. - -Every time before the cache is created, the same widgets are generated again and again. This feature avoids generating the widgets again and again to reduce the sql queries.', 'clearfy'), - 'default' => true, - ], - - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'preload_cache', - 'title' => __('Preload cache', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('The preload feature stars to work after delete cache. - -When the Preload feature calls the urls, the cache of urls are created automatically. When all the pages are cached, the preload stops working. When the cache is clear, it starts working again. - -The Preload runs every 5 minutes. If you want set a specific interval. Note: The preload feature works with the WP_CRON system.', 'clearfy'), - 'default' => false - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'clear_cache_for_newpost', - 'title' => __('Clear cache for new post', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Clear cache files when a post or page is published', 'clearfy'), - 'default' => true - ], - - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'clear_cache_for_updated_post', - 'title' => __('Clear cache for updated Post', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Clear cache files when a post or page is updated', 'clearfy'), - 'default' => true - ], - [ - 'type' => 'textarea', - 'name' => 'exclude_files', - 'title' => __('Filenames that can be cached', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Add here those filenames that can be cached, even if they match one of the rejected substring specified above.', 'clearfy'), - 'default' => 'wp-comments-popup.php -wp-links-opml.php -wp-locations.php -' - ], - [ - 'type' => 'textarea', - 'name' => 'exclude_pages', - 'title' => __('Rejected User Agents', 'clearfy'), - 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'], - 'hint' => __('Strings in the HTTP ’User Agent’ header that prevent WP-Cache from caching bot, spiders, and crawlers’ requests. Note that super cached files are still sent to these agents if they already exists.', 'clearfy'), - 'default' => 'bot -ia_archive -slurp -crawl -spider -Yandex -' - ] - ] - ]; - - $form_options = []; - $form_options[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters('wclearfy_cache_form_options', $form_options, $this); - } - - public function afterFormSave() - { - try { - do_action("wclearfy/cache/settings_page/after_form_save"); - - WCL_Cache_Helpers::modifyHtaccess(); - } catch( Exception $e ) { - if( !empty($e->getCode()) && isset($this->errors[$e->getCode()]) ) { - $this->redirectToAction('index', ['wclearfy-cache-error' => $e->getCode()]); - } - } - } -} diff --git a/wp-content/plugins/!clearfy/components/cache/cache.php b/wp-content/plugins/!clearfy/components/cache/cache.php deleted file mode 100644 index 10d28445..00000000 --- a/wp-content/plugins/!clearfy/components/cache/cache.php +++ /dev/null @@ -1,40 +0,0 @@ - - * Version: 1.0.3 - * Text Domain: clearfy_cache - * Domain Path: /languages/ - * Author URI: https://webcraftic.com - * Framework Version: FACTORY_480_VERSION - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -/** - * Developers who contributions in the development plugin: - * - * Alexander Kovalev - * --------------------------------------------------------------------------------- - * Full plugin development. - * - * Email: alex.kovalevv@gmail.com - * Personal card: https://alexkovalevv.github.io - * Personal repo: https://github.com/alexkovalevv - * --------------------------------------------------------------------------------- - */ - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -//todo: Fill the file if need release alone plugin \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/clearfy.php b/wp-content/plugins/!clearfy/components/cache/clearfy.php deleted file mode 100644 index 91af27d2..00000000 --- a/wp-content/plugins/!clearfy/components/cache/clearfy.php +++ /dev/null @@ -1,52 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - */ - -// Exit if accessed directly -if( !defined('ABSPATH') ) { - exit; -} - -if( !defined('WCACHE_PLUGIN_ACTIVE') ) { - define('WCACHE_PLUGIN_VERSION', '1.0.3'); - define('WCACHE_TEXT_DOMAIN', 'clearfy_cache'); - define('WCACHE_PLUGIN_ACTIVE', true); - - // Этот плагин загружен, как аддон для плагина Clearfy - define('LOADING_CLEARFY_CACHE_AS_ADDON', true); - - if( !defined('WCACHE_PLUGIN_DIR') ) { - define('WCACHE_PLUGIN_DIR', dirname(__FILE__)); - } - - if( !defined('WCACHE_PLUGIN_BASE') ) { - define('WCACHE_PLUGIN_BASE', plugin_basename(__FILE__)); - } - - if( !defined('WCACHE_PLUGIN_URL') ) { - define('WCACHE_PLUGIN_URL', plugins_url('', __FILE__)); - } - - try { - // Global scripts - require_once(WCACHE_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php'); - new WCACHE_Plugin(); - } catch( Exception $e ) { - $wcache_plugin_error_func = function () use ($e) { - $error = sprintf("The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Clearfy Cache', $e->getMessage(), $e->getCode()); - echo '

      ' . $error . '

      '; - }; - - add_action('admin_notices', $wcache_plugin_error_func); - add_action('network_admin_notices', $wcache_plugin_error_func); - } -} - - diff --git a/wp-content/plugins/!clearfy/components/cache/includes/3rd-party/class-clearfy-plugin.php b/wp-content/plugins/!clearfy/components/cache/includes/3rd-party/class-clearfy-plugin.php deleted file mode 100644 index 7a9490d0..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/3rd-party/class-clearfy-plugin.php +++ /dev/null @@ -1,135 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ -class WCACHE_Plugin { - - /** - * @see self::app() - * @var WCL_Plugin - */ - private static $app; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct() - { - if( !class_exists('WCL_Plugin') ) { - throw new Exception('Plugin Clearfy is not installed!'); - } - - self::$app = WCL_Plugin::app(); - - $this->global_scripts(); - - if( is_admin() ) { - $this->admin_scripts(); - } - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return WCL_Plugin - */ - public static function app() - { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - */ - protected function init_activation() - { - include_once(WCACHE_PLUGIN_DIR . '/admin/activation.php'); - self::app()->registerActivation('WCACHE_Activation'); - } - - /** - * @throws \Exception - * @since 1.0.0 - * @author Alexander Kovalev - */ - private function register_pages() - { - self::app()->registerPage('WCACHE_CachePage', WCACHE_PLUGIN_DIR . '/admin/pages/class-pages-performance-cache.php'); - self::app()->registerPage('WCL_CacheProNginxRulesPage', WCACHE_PLUGIN_DIR . '/admin/pages/class-pages-nginx-rules.php'); - } - - /** - * @throws \Exception - * @author Alexander Kovalev - */ - private function admin_scripts() - { - require(WCACHE_PLUGIN_DIR . '/admin/boot.php'); - - $this->init_activation(); - } - - private function global_scripts() - { - require_once WCACHE_PLUGIN_DIR . '/includes/helpers.php'; - require_once WCACHE_PLUGIN_DIR . '/includes/cache.php'; - - if( self::app()->getPopulateOption('enable_cache') ) { - if( self::app()->getPopulateOption('widget_cache') ) { - require_once WCACHE_PLUGIN_DIR . "/includes/widget-cache.php"; - - WCL_WidgetCache::action(); - } - } - - if( self::app()->getPopulateOption('cache_mobile_theme') ) { - require_once WCACHE_PLUGIN_DIR . '/includes/mobile-cache.php'; - } - - add_filter('wbcr/clearfy/adminbar_menu_items', function ($menu_items) { - $nonce = wp_create_nonce('wclearfy_cache_delete'); - - $menu_items['clearfy-clear-all-cache'] = [ - 'id' => 'clearfy-clear-all-cache', - 'title' => ' ' . __('Clear all cache', 'clearfy'), - 'href' => esc_url(add_query_arg([ - 'wclearfy_cache_delete' => '1', - '_wpnonce' => $nonce - ])) - ]; - - return $menu_items; - }); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/cache.php b/wp-content/plugins/!clearfy/components/cache/includes/cache.php deleted file mode 100644 index de3059c0..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/cache.php +++ /dev/null @@ -1,100 +0,0 @@ -createCache(); - } - } - } - - public function on_all_status_transitions($new_status, $old_status, $post) - { - if( !WCL_Plugin::app()->getPopulateOption('enable_cache') ) { - return false; - } - - if( !wp_is_post_revision($post->ID) ) { - if( isset($post->post_type) ) { - if( $post->post_type == "nf_sub" ) { - return false; - } - } - - if( WCL_Plugin::app()->getPopulateOption('clear_cache_for_newpost') ) { - if( $new_status == "publish" && $old_status != "publish" ) { - - WCL_Cache_Helpers::deleteHomePageCache(); - - //to clear category cache and tag cache - WCL_Cache_Helpers::singleDeleteCache(false, $post->ID); - - //to clear widget cache - WCL_Cache_Helpers::deleteWidgetCache(); - } - } - - if( WCL_Plugin::app()->getPopulateOption('clear_cache_for_updated_post') ) { - if( $new_status == "publish" && $old_status == "publish" ) { - WCL_Cache_Helpers::singleDeleteCache(false, $post->ID); - - //to clear widget cache - WCL_Cache_Helpers::deleteWidgetCache(); - } - } - - if( $new_status == "trash" && $old_status == "publish" ) { - WCL_Cache_Helpers::singleDeleteCache(false, $post->ID); - } else if( ($new_status == "draft" || $new_status == "pending" || $new_status == "private") && $old_status == "publish" ) { - WCL_Cache_Helpers::deleteCache(); - } - } - } - - public static function activate() - { - if( WCL_Plugin::app()->getPopulateOption('enable_cache') ) { - WCL_Cache_Helpers::modifyHtaccess(); - } - } - - public static function deactivate() - { - $path = ABSPATH; - - if( WCL_Cache_Helpers::is_subdirectory_install() ) { - $path = WCL_Cache_Helpers::getABSPATH(); - } - - if( is_file($path . ".htaccess") && is_writable($path . ".htaccess") ) { - $htaccess = file_get_contents($path . ".htaccess"); - $htaccess = preg_replace("/#\s?BEGIN\s?WClearfyCache.*?#\s?END\s?WClearfyCache/s", "", $htaccess); - $htaccess = preg_replace("/#\s?BEGIN\s?GzipWClearfyCache.*?#\s?END\s?GzipWClearfyCache/s", "", $htaccess); - $htaccess = preg_replace("/#\s?BEGIN\s?LBCWClearfyCache.*?#\s?END\s?LBCWClearfyCache/s", "", $htaccess); - $htaccess = preg_replace("/#\s?BEGIN\s?WEBPWClearfyCache.*?#\s?END\s?WEBPWClearfyCache/s", "", $htaccess); - @file_put_contents($path . ".htaccess", $htaccess); - } - //$wclearfy->deleteCache(); - } -} - -new WCL_Cache(); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/class-plugin.php b/wp-content/plugins/!clearfy/components/cache/includes/class-plugin.php deleted file mode 100644 index 52709c5a..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/class-plugin.php +++ /dev/null @@ -1,132 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 19.02.2018, Webcraftic - */ -class WCACHE_Plugin extends Wbcr_Factory480_Plugin { - - /** - * @see self::app() - * @var Wbcr_Factory480_Plugin - */ - private static $app; - - /** - * @since 1.1.0 - * @var array - */ - private $plugin_data; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct($plugin_path, $data) - { - parent::__construct($plugin_path, $data); - - self::$app = $this; - $this->plugin_data = $data; - - $this->global_scripts(); - - if( is_admin() ) { - $this->admin_scripts(); - } - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return \Wbcr_Factory480_Plugin|\WCTR_Plugin - */ - public static function app() - { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - */ - protected function init_activation() - { - include_once(WCACHE_PLUGIN_DIR . '/admin/activation.php'); - self::app()->registerActivation('WCACHE_Activation'); - } - - /** - * @throws \Exception - * @since 1.0.0 - * @author Alexander Kovalev - */ - private function register_pages() - { - $this->registerPage('WCACHE_CachePage', WCACHE_PLUGIN_DIR . '/admin/pages/class-pages-performance-cache.php'); - } - - /** - * @throws \Exception - * @author Alexander Kovalev - */ - private function admin_scripts() - { - $this->init_activation(); - } - - private function global_scripts() - { - require_once WCACHE_PLUGIN_DIR . '/helpers.php'; - require_once WCACHE_PLUGIN_DIR . '/includes/cache.php'; - - if( is_admin() ) { - require(WCACHE_PLUGIN_DIR . '/admin/boot.php'); - if( class_exists('WCL_CachePage') ) { - WCL_Plugin::app()->registerPage('WCL_CacheProPage', WCACHE_PLUGIN_DIR . '/admin/pages/class-pages-cache.php'); - } - } - - add_filter('wbcr/clearfy/adminbar_menu_items', function ($menu_items) { - $nonce = wp_create_nonce('wclearfy_cache_delete'); - - $menu_items['clearfy-clear-all-cache'] = [ - 'id' => 'clearfy-clear-all-cache', - 'title' => ' ' . __('Clear all cache', 'clearfy'), - 'href' => esc_url(add_query_arg([ - 'wclearfy_cache_delete' => '1', - '_wpnonce' => $nonce - ])) - ]; - return $menu_items; - }); - - } -} - diff --git a/wp-content/plugins/!clearfy/components/cache/includes/create-cache.php b/wp-content/plugins/!clearfy/components/cache/includes/create-cache.php deleted file mode 100644 index 064c7587..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/create-cache.php +++ /dev/null @@ -1,921 +0,0 @@ -preload_user_agent = true; - } else { - $this->preload_user_agent = false; - } - - //$this->set_cdn(); - $this->set_cache_file_path(); - } - - public function detect_current_page_type() - { - if( preg_match("/\?/", $_SERVER["REQUEST_URI"]) ) { - return true; - } - - if( preg_match("/^\/wp-json/", $_SERVER["REQUEST_URI"]) ) { - return true; - } - - if( is_front_page() ) { - echo ""; - } else if( is_category() ) { - echo ""; - } else if( is_tag() ) { - echo ""; - } else if( is_singular('post') ) { - echo ""; - } else if( is_page() ) { - echo ""; - } else if( is_attachment() ) { - echo ""; - } else if( is_archive() ) { - echo ""; - } - } - - public function set_exclude_rules() - { - if( $json_data = get_option("WClearfyCacheExclude") ) { - $this->exclude_rules = json_decode($json_data); - } - } - - public function set_cache_file_path() - { - $type = "all"; - - if( WCL_Cache_Helpers::isMobile() && WCL_Plugin::app()->getPopulateOption('cache_mobile') ) { - if( class_exists("WCL_MobileCache") && WCL_Plugin::app()->getPopulateOption('cache_mobile_theme') ) { - $type = "wclearfy-mobile-cache"; - } - } - - if( WCL_Cache_Helpers::isPluginActive('gtranslate/gtranslate.php') ) { - if( isset($_SERVER["HTTP_X_GT_LANG"]) ) { - $this->cacheFilePath = WCL_Cache_Helpers::getWpContentDir("/cache/" . $type . "/") . $_SERVER["HTTP_X_GT_LANG"] . $_SERVER["REQUEST_URI"]; - } else if( isset($_SERVER["REDIRECT_URL"]) && $_SERVER["REDIRECT_URL"] != "/index.php" ) { - $this->cacheFilePath = WCL_Cache_Helpers::getWpContentDir("/cache/" . $type . "/") . $_SERVER["REDIRECT_URL"]; - } else if( isset($_SERVER["REQUEST_URI"]) ) { - $this->cacheFilePath = WCL_Cache_Helpers::getWpContentDir("/cache/" . $type . "/") . $_SERVER["REQUEST_URI"]; - } - } else { - $this->cacheFilePath = WCL_Cache_Helpers::getWpContentDir("/cache/" . $type . "/") . $_SERVER["REQUEST_URI"]; - - // for /?s= - $this->cacheFilePath = preg_replace("/(\/\?s\=)/", "$1/", $this->cacheFilePath); - } - - $this->cacheFilePath = $this->cacheFilePath ? rtrim($this->cacheFilePath, "/") . "/" : ""; - $this->cacheFilePath = preg_replace("/\/cache\/(all|wclearfy-mobile-cache)\/\//", "/cache/$1/", $this->cacheFilePath); - - if( strlen($_SERVER["REQUEST_URI"]) > 1 ) { // for the sub-pages - if( !preg_match("/\.html/i", $_SERVER["REQUEST_URI"]) ) { - if( WCL_Cache_Helpers::is_trailing_slash() ) { - if( !preg_match("/\/$/", $_SERVER["REQUEST_URI"]) ) { - if( defined('WCACHE_QUERYSTRING') && WCACHE_QUERYSTRING ) { - - } else if( preg_match("/gclid\=/i", $this->cacheFilePath) ) { - - } else if( preg_match("/fbclid\=/i", $this->cacheFilePath) ) { - - } else if( preg_match("/utm_(source|medium|campaign|content|term)/i", $this->cacheFilePath) ) { - - } else { - $this->cacheFilePath = false; - } - } - } else { - //toDo - } - } - } - - $this->remove_url_paramters(); - - // to decode path if it is not utf-8 - if( $this->cacheFilePath ) { - $this->cacheFilePath = urldecode($this->cacheFilePath); - } - - // for security - if( preg_match("/\.{2,}/", $this->cacheFilePath) ) { - $this->cacheFilePath = false; - } - if( WCL_Cache_Helpers::isMobile() ) { - if( WCL_Plugin::app()->getPopulateOption('cache_mobile') ) { - if( !class_exists("WCL_MobileCache") ) { - $this->cacheFilePath = false; - } else { - if( !WCL_Plugin::app()->getPopulateOption('cache_mobile_theme') ) { - $this->cacheFilePath = false; - } - } - } - } - } - - public function remove_url_paramters() - { - $action = false; - - //to remove query strings for cache if Google Click Identifier are set - if( preg_match("/gclid\=/i", $this->cacheFilePath) ) { - $action = true; - } - - //to remove query strings for cache if facebook parameters are set - if( preg_match("/fbclid\=/i", $this->cacheFilePath) ) { - $action = true; - } - - //to remove query strings for cache if google analytics parameters are set - if( preg_match("/utm_(source|medium|campaign|content|term)/i", $this->cacheFilePath) ) { - $action = true; - } - - if( $action ) { - if( strlen($_SERVER["REQUEST_URI"]) > 1 ) { // for the sub-pages - - $this->cacheFilePath = preg_replace("/\/*\?.+/", "", $this->cacheFilePath); - $this->cacheFilePath = $this->cacheFilePath . "/"; - - define('WCACHE_QUERYSTRING', true); - } - } - } - - public function set_cdn() - { - $cdn_values = get_option("WClearfyCacheCDN"); - if( $cdn_values ) { - $std_obj = json_decode($cdn_values); - $arr = []; - - if( is_array($std_obj) ) { - $arr = $std_obj; - } else { - array_push($arr, $std_obj); - } - - foreach($arr as $key => &$std) { - $std->originurl = trim($std->originurl); - $std->originurl = trim($std->originurl, "/"); - $std->originurl = preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->originurl); - - $std->cdnurl = trim($std->cdnurl); - $std->cdnurl = trim($std->cdnurl, "/"); - - if( !preg_match("/https\:\/\//", $std->cdnurl) ) { - $std->cdnurl = "//" . preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->cdnurl); - } - } - - $this->cdn = $arr; - } - } - - public function checkShortCode($content) - { - if( preg_match("/\[wclearfyNOT\]/", $content) ) { - if( !is_home() || !is_archive() ) { - $this->blockCache = true; - } - $content = str_replace("[wclearfyNOT]", "", $content); - } - - return $content; - } - - public function createCache() - { - if( !WCL_Plugin::app()->getPopulateOption('enable_cache') ) { - return 0; - } - - // to exclude static pdf files - if( preg_match("/\.pdf$/i", $_SERVER["REQUEST_URI"]) ) { - return 0; - } - - // to check logged-in user - if( WCL_Plugin::app()->getPopulateOption('dont_cache_for_logged_in_users') ) { - foreach((array)$_COOKIE as $cookie_key => $cookie_value) { - if( preg_match("/wordpress_logged_in/i", $cookie_key) ) { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - } - } - - // to exclude admin users - foreach((array)$_COOKIE as $cookie_key => $cookie_value) { - if( preg_match("/wordpress_logged_in/i", $cookie_key) ) { - $users_groups = get_users(["role" => "administrator", "fields" => ["user_login"]]); - - foreach($users_groups as $user_key => $user_value) { - if( preg_match("/^" . preg_quote($user_value->user_login, "/") . "/", $cookie_value) ) { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - } - } - } - - // to check comment author - foreach((array)$_COOKIE as $cookie_key => $cookie_value) { - if( preg_match("/comment_author_/i", $cookie_key) ) { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - } - - if( isset($_COOKIE) && isset($_COOKIE['safirmobilswitcher']) ) { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - - if( isset($_COOKIE) && isset($_COOKIE["wptouch-pro-view"]) ) { - if( WCL_Cache_Helpers::is_wptouch_smartphone() ) { - if( $_COOKIE["wptouch-pro-view"] == "desktop" ) { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - } - } - - if( preg_match("/\?/", $_SERVER["REQUEST_URI"]) && !preg_match("/\/\?fdx\_switcher\=true/", $_SERVER["REQUEST_URI"]) ) { // for WP Mobile Edition - if( preg_match("/\?amp(\=1)?/i", $_SERVER["REQUEST_URI"]) ) { - // - } else if( defined('WCACHE_QUERYSTRING') && WCACHE_QUERYSTRING ) { - // - } else { - ob_start([$this, "cdn_rewrite"]); - - return 0; - } - } - - if( preg_match("/(" . WCL_Cache_Helpers::get_excluded_useragent() . ")/", $_SERVER['HTTP_USER_AGENT']) ) { - return 0; - } - - if( isset($_SERVER['REQUEST_URI']) && preg_match("/(\/){2}$/", $_SERVER['REQUEST_URI']) ) { - return 0; - } - - // to check permalink if it does not end with slash - if( isset($_SERVER['REQUEST_URI']) && preg_match("/[^\/]+\/$/", $_SERVER['REQUEST_URI']) ) { - if( !preg_match("/\/$/", get_option('permalink_structure')) ) { - return 0; - } - } - - if( isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST" ) { - return 0; - } - - if( preg_match("/^https/i", get_option("home")) && !is_ssl() ) { - //Must be secure connection - return 0; - } - - if( !preg_match("/^https/i", get_option("home")) && is_ssl() ) { - //must be normal connection - if( !WCL_Cache_Helpers::isPluginActive('really-simple-ssl/rlrsssl-really-simple-ssl.php') ) { - if( !WCL_Cache_Helpers::isPluginActive('really-simple-ssl-pro/really-simple-ssl-pro.php') ) { - if( !WCL_Cache_Helpers::isPluginActive('really-simple-ssl-on-specific-pages/really-simple-ssl-on-specific-pages.php') ) { - if( !WCL_Cache_Helpers::isPluginActive('ssl-insecure-content-fixer/ssl-insecure-content-fixer.php') ) { - if( !WCL_Cache_Helpers::isPluginActive('https-redirection/https-redirection.php') ) { - if( !WCL_Cache_Helpers::isPluginActive('better-wp-security/better-wp-security.php') ) { - return 0; - } - } - } - } - } - } - } - - if( preg_match("/www\./i", get_option("home")) && !preg_match("/www\./i", $_SERVER['HTTP_HOST']) ) { - return 0; - } - - if( !preg_match("/www\./i", get_option("home")) && preg_match("/www\./i", $_SERVER['HTTP_HOST']) ) { - return 0; - } - - if( $this->exclude_page() ) { - echo ""."\n"; - return 0; - } - - // http://mobiledetect.net/ does not contain the following user-agents - if( preg_match("/Nokia309|Casper_VIA/i", $_SERVER['HTTP_USER_AGENT']) ) { - return 0; - } - - if( preg_match("/Empty\sUser\sAgent/i", $_SERVER['HTTP_USER_AGENT']) ) { // not to show the cache for command line - return 0; - } - - //to show cache version via php if htaccess rewrite rule does not work - if( !$this->preload_user_agent && $this->cacheFilePath && (@file_exists($this->cacheFilePath . "index.html") || @file_exists($this->cacheFilePath . "index.json") || @file_exists($this->cacheFilePath . "index.xml")) ) { - - $via_php = ""; - if( @file_exists($this->cacheFilePath . "index.json") ) { - $file_extension = "json"; - - header('Content-type: application/json'); - } else if( @file_exists($this->cacheFilePath . "index.xml") ) { - $file_extension = "xml"; - - header('Content-type: text/xml'); - } else { - $file_extension = "html"; - $via_php = ""; - } - - if( $content = @file_get_contents($this->cacheFilePath . "index." . $file_extension) ) { - if( defined('WCLEARFY_REMOVE_VIA_FOOTER_COMMENT') && WCLEARFY_REMOVE_VIA_FOOTER_COMMENT ) { - $via_php = ""; - } - - $content = $content . $via_php; - - die($content); - } - } else { - if( WCL_Cache_Helpers::isMobile() ) { - if( class_exists("WCL_MobileCache") && WCL_Plugin::app()->getPopulateOption('cache_mobile_theme') ) { - if( WCL_Plugin::app()->getPopulateOption('cache_mobile_theme_name') ) { - $create_cache = true; - } else if( WCL_Cache_Helpers::isPluginActive('wptouch/wptouch.php') || WCL_Cache_Helpers::isPluginActive('wptouch-pro/wptouch-pro.php') ) { - //to check that user-agent exists in wp-touch's list or not - if( WCL_Cache_Helpers::is_wptouch_smartphone() ) { - $create_cache = true; - } else { - $create_cache = false; - } - } else if( WCL_Cache_Helpers::isPluginActive('any-mobile-theme-switcher/any-mobile-theme-switcher.php') ) { - if( WCL_Cache_Helpers::is_anymobilethemeswitcher_mobile() ) { - $create_cache = true; - } else { - $create_cache = false; - } - } else { - if( (preg_match('/iPhone/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT'])) || (preg_match('/Android/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT'])) ) { - $create_cache = true; - } else { - $create_cache = false; - } - } - } else if( !WCL_Plugin::app()->getPopulateOption('cache_mobile') && !WCL_Plugin::app()->getPopulateOption('cache_mobile_theme') ) { - $create_cache = true; - } else { - $create_cache = false; - } - } else { - $create_cache = true; - } - - if( $create_cache ) { - $this->startTime = microtime(true); - - add_action('wp', [$this, "detect_current_page_type"]); - add_action('get_footer', [$this, "detect_current_page_type"]); - add_action('get_footer', [$this, "wp_print_scripts_action"]); - - // to exclude current page hook - add_action("wclearfy_exclude_current_page", [$this, 'exclude_current_page'], 10, 0); - - ob_start([$this, "callback"]); - } - } - } - - public function exclude_current_page($some = true) - { - $via = debug_backtrace(); - - if( isset($via) && is_array($via) ) { - foreach($via as $key => $value) { - if( $value["function"] == "wclearfy_exclude_current_page" ) { - - if( defined('WCLEARFY_DEBUG') && (WCLEARFY_DEBUG === true) ) { - if( preg_match("/wp-content\/themes/", $value["file"]) ) { - $this->exclude_current_page_text = ""; - } else if( preg_match("/wp-content\/plugins/", $value["file"]) ) { - $this->exclude_current_page_text = ""; - } - } else { - $this->exclude_current_page_text = ""; - } - - break; - } - } - } - } - - public function wp_print_scripts_action() - { - echo ""; - } - - public function ignored($buffer) - { - $list = [ - "\/wp\-comments\-post\.php", - "\/wp\-login\.php", - "\/robots\.txt", - "\/wp\-cron\.php", - "\/wp\-content", - "\/wp\-admin", - "\/wp\-includes", - "\/index\.php", - "\/xmlrpc\.php", - "\/wp\-api\/", - "leaflet\-geojson\.php", - "\/clientarea\.php" - ]; - if( WCL_Cache_Helpers::isPluginActive('woocommerce/woocommerce.php') ) { - if( $this->current_page_type != "homepage" ) { - global $post; - - if( isset($post->ID) && $post->ID ) { - if( function_exists("wc_get_page_id") ) { - $woocommerce_ids = []; - array_push($woocommerce_ids, wc_get_page_id('cart'), wc_get_page_id('checkout'), wc_get_page_id('receipt'), wc_get_page_id('confirmation'), wc_get_page_id('myaccount')); - - if( in_array($post->ID, $woocommerce_ids) ) { - return true; - } - } - } - - array_push($list, "\/cart\/?$", "\/checkout", "\/receipt", "\/confirmation", "\/wc-api\/"); - } - } - - if( WCL_Cache_Helpers::isPluginActive('wp-easycart/wpeasycart.php') ) { - array_push($list, "\/cart"); - } - - if( WCL_Cache_Helpers::isPluginActive('easy-digital-downloads/easy-digital-downloads.php') ) { - array_push($list, "\/cart", "\/checkout"); - } - - if( preg_match("/" . implode("|", $list) . "/i", $_SERVER["REQUEST_URI"]) ) { - return true; - } - - return false; - } - - public function exclude_page() - { - $preg_match_rule = ""; - $request_url = urldecode(trim($_SERVER["REQUEST_URI"], "/")); - - $excluded_uris = WCL_Plugin::app()->getPopulateOption('cache_reject_uri'); - - if( !empty($excluded_uris) ) { - $excluded_uris = array_map(function ($value) { - $site_url = site_url(); - - $value = trim(rtrim($value)); - // http://clearfy.pro/members/ -> /members/ - $value = str_replace($site_url, "", $value); - // /members/(.*) -> members/(.*) - $value = preg_replace("/^\//", "", $value); - // members/ -> members - $value = untrailingslashit($value); - - return $value; - }, preg_split('/\r\n|\n|\r/', $excluded_uris)); - } else { - $excluded_uris = []; - } - - foreach($excluded_uris as $uri) { - if( $uri === $request_url ) { - return true; - } - - if( !empty($uri) && @preg_match('/' . $uri . '/i', $request_url) ) { - return true; - } - } - - return false; - } - - public function is_json() - { - return $this->current_page_content_type == "json" ? true : false; - } - - public function is_xml() - { - return $this->current_page_content_type == "xml" ? true : false; - } - - public function is_html() - { - return $this->current_page_content_type == "html" ? true : false; - } - - public function set_current_page_type($buffer) - { - preg_match('/<\!--WCLEARFY_PAGE_TYPE_([a-z]+)-->/i', $buffer, $out); - - $this->current_page_type = isset($out[1]) ? $out[1] : false; - } - - public function set_current_page_content_type($buffer) - { - $content_type = false; - if( function_exists("headers_list") ) { - $headers = headers_list(); - foreach($headers as $header) { - if( preg_match("/Content-Type\:/i", $header) ) { - $content_type = preg_replace("/Content-Type\:\s(.+)/i", "$1", $header); - } - } - } - - if( preg_match("/xml/i", $content_type) ) { - $this->current_page_content_type = "xml"; - } else if( preg_match("/json/i", $content_type) ) { - $this->current_page_content_type = "json"; - } else { - $this->current_page_content_type = "html"; - } - } - - public function last_error($buffer = false) - { - if( function_exists("http_response_code") && (http_response_code() === 404) ) { - return true; - } - - if( is_404() ) { - return true; - } - - if( preg_match("/\s*

      [^\>]+<\/p>\s*<\/body>/i", $buffer) ) { - return true; - } - } - - public function callback($buffer) - { - $this->set_current_page_type($buffer); - $this->set_current_page_content_type($buffer); - - $buffer = $this->checkShortCode($buffer); - - // for Wordfence: not to cache 503 pages - if( defined('DONOTCACHEPAGE') && WCL_Cache_Helpers::isPluginActive('wordfence/wordfence.php') ) { - if( function_exists("http_response_code") && http_response_code() == 503 ) { - return $buffer . ""; - } - } - - // for iThemes Security: not to cache 403 pages - if( defined('DONOTCACHEPAGE') && WCL_Cache_Helpers::isPluginActive('better-wp-security/better-wp-security.php') ) { - if( function_exists("http_response_code") && http_response_code() == 403 ) { - return $buffer . ""; - } - } - - if( $this->exclude_page($buffer) ) { - $buffer = preg_replace('/<\!--WCLEARFY_PAGE_TYPE_[a-z]+-->/i', '', $buffer); - - return $buffer; - } - - $buffer = preg_replace('/<\!--WCLEARFY_PAGE_TYPE_[a-z]+-->/i', '', $buffer); - - if( $this->exclude_current_page_text ) { - return $buffer . $this->exclude_current_page_text; - } else if( $this->is_json() && (!defined('WCACHE_JSON') || (defined('WCACHE_JSON') && WCACHE_JSON !== true)) ) { - return $buffer; - } else if( preg_match("/Mediapartners-Google|Google\sWireless\sTranscoder/i", $_SERVER['HTTP_USER_AGENT']) ) { - return $buffer; - } else if( is_user_logged_in() || $this->isCommenter() ) { - return $buffer; - } else if( $this->isPasswordProtected($buffer) ) { - return $buffer . ""; - } else if( WCL_Cache_Helpers::isWpLogin($buffer) ) { - return $buffer . ""; - } else if( WCL_Cache_Helpers::hasContactForm7WithCaptcha($buffer) ) { - return $buffer . ""; - } else if( $this->last_error($buffer) ) { - return $buffer; - } else if( $this->ignored($buffer) ) { - return $buffer; - } else if( $this->blockCache === true ) { - return $buffer . ""; - } else if( isset($_GET["preview"]) ) { - return $buffer . ""; - } else if( $this->checkHtml($buffer) ) { - return $buffer . ""; - } else if( (function_exists("http_response_code")) && (http_response_code() == 301 || http_response_code() == 302) ) { - return $buffer; - } else if( !$this->cacheFilePath ) { - return $buffer . ""; - } else { - $content = $buffer; - - if( $this->err ) { - return $buffer . ""; - } else { - $content = $this->cacheDate($content); - $content = str_replace("", "", $content); - - $content = $this->cdn_rewrite($content); - $content = $this->fix_pre_tag($content, $buffer); - - if( $this->cacheFilePath ) { - if( $this->is_html() ) { - $this->createFolder($this->cacheFilePath, $content); - do_action('wclearfy_is_cacheable_action'); - } else if( $this->is_xml() ) { - if( preg_match("/<\/link>/", $buffer) ) { - if( preg_match("/\/feed$/", $_SERVER["REQUEST_URI"]) ) { - return $buffer . time(); - } - } - - $this->createFolder($this->cacheFilePath, $buffer, "xml"); - do_action('wclearfy_is_cacheable_action'); - - return $buffer; - } else if( $this->is_json() ) { - $this->createFolder($this->cacheFilePath, $buffer, "json"); - do_action('wclearfy_is_cacheable_action'); - - return $buffer; - } - } - - return $content . ""; - } - } - } - - public function fix_pre_tag($content, $buffer) - { - if( preg_match("/]*>/i", $buffer) ) { - preg_match_all("/]*>((?!<\/pre>).)+<\/pre>/is", $buffer, $pre_buffer); - preg_match_all("/]*>((?!<\/pre>).)+<\/pre>/is", $content, $pre_content); - - if( isset($pre_content[0]) && isset($pre_content[0][0]) ) { - foreach($pre_content[0] as $key => $value) { - /* - location ~ / { - set $path /path/$1/index.html; - } - */ - if( isset($pre_buffer[0][$key]) ) { - $pre_buffer[0][$key] = preg_replace('/\$(\d)/', '\\\$$1', $pre_buffer[0][$key]); - - $content = preg_replace("/" . preg_quote($value, "/") . "/", $pre_buffer[0][$key], $content); - } - } - } - } - - return $content; - } - - public function cdn_rewrite($content) - { - if( $this->cdn ) { - $content = preg_replace_callback("/(srcset|src|href|data-vc-parallax-image|data-bg|data-fullurl|data-mobileurl|data-img-url|data-cvpsrc|data-cvpset|data-thumb|data-bg-url|data-large_image|data-lazyload|data-lazy|data-source-url|data-srcsmall|data-srclarge|data-srcfull|data-slide-img|data-lazy-original)\s{0,2}\=\s{0,2}[\'\"]([^\'\"]+)[\'\"]/i", [ - $this, - 'cdn_replace_urls' - ], $content); - - //url() - $content = preg_replace_callback("/(url)\(([^\)\>]+)\)/i", [$this, 'cdn_replace_urls'], $content); - - //{"concatemoji":"http:\/\/your_url.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7"} - $content = preg_replace_callback("/\{\"concatemoji\"\:\"[^\"]+\"\}/i", [ - $this, - 'cdn_replace_urls' - ], $content); - - // - $content = preg_replace_callback("/[\"\']([^\'\"]+)[\"\']\s*\:\s*[\"\']https?\:\\\\\/\\\\\/[^\"\']+[\"\']/i", [ - $this, - 'cdn_replace_urls' - ], $content); - - // - $content = preg_replace_callback("/(jsFileLocation)\s*\:[\"\']([^\"\']+)[\"\']/i", [ - $this, - 'cdn_replace_urls' - ], $content); - - //

      - //
      - $content = preg_replace_callback("/(data-product_variations|data-siteorigin-parallax)\=[\"\'][^\"\']+[\"\']/i", [ - $this, - 'cdn_replace_urls' - ], $content); - - // - $content = preg_replace_callback("/]+(data)\s{0,2}\=[\'\"]([^\'\"]+)[\'\"][^\>]+>/i", [ - $this, - 'cdn_replace_urls' - ], $content); - } - - return $content; - } - - public function get_header($content) - { - $head_first_index = strpos($content, ""); - - return substr($content, $head_first_index, ($head_last_index - $head_first_index + 1)); - } - - public function checkHtml($buffer) - { - if( !$this->is_html() ) { - return false; - } - - if( preg_match('/]*>/si', $buffer) && preg_match('/]*>/si', $buffer) ) { - return false; - } - // if(strlen($buffer) > 10){ - // return false; - // } - - return true; - } - - public function cacheDate($buffer) - { - if( WCL_Cache_Helpers::isMobile() && class_exists("WCL_MobileCache") && WCL_Plugin::app()->getPopulateOption('cache_mobile') && WCL_Plugin::app()->getPopulateOption('cache_mobile_theme') ) { - $comment = ""; - } else { - $comment = ""; - } - - if( defined('WCLEARFY_REMOVE_FOOTER_COMMENT') && WCLEARFY_REMOVE_FOOTER_COMMENT ) { - return $buffer; - } else { - return $buffer . $comment; - } - } - - public function creationTime() - { - return microtime(true) - $this->startTime; - } - - public function isCommenter() - { - $commenter = wp_get_current_commenter(); - - return isset($commenter["comment_author_email"]) && $commenter["comment_author_email"] ? true : false; - } - - public function isPasswordProtected($buffer) - { - if( preg_match("/action\=[\'\"].+postpass.*[\'\"]/", $buffer) ) { - return true; - } - - foreach($_COOKIE as $key => $value) { - if( preg_match("/wp\-postpass\_/", $key) ) { - return true; - } - } - - return false; - } - - public function create_name($list) - { - $arr = is_array($list) ? $list : [["href" => $list]]; - $name = ""; - - foreach($arr as $tag_key => $tag_value) { - $tmp = preg_replace("/(\.css|\.js)\?.*/", "$1", $tag_value["href"]); //to remove version number - $name = $name . $tmp; - } - - return base_convert(crc32($name), 20, 36); - } - - public function createFolder($cachFilePath, $buffer, $extension = "html", $prefix = false) - { - $create = false; - $file_name = "index."; - $update_db_statistic = true; - - if( $buffer && strlen($buffer) > 100 && preg_match("/html|xml|json/i", $extension) ) { - if( !preg_match("/^\<\!\-\-\sMobile\:\sWP\sFastest\sCache/i", $buffer) ) { - if( !preg_match("/^\<\!\-\-\sWP\sFastest\sCache/i", $buffer) ) { - $create = true; - } - } - - if( $this->preload_user_agent ) { - if( file_exists($cachFilePath . "/" . "index." . $extension) ) { - $update_db_statistic = false; - @unlink($cachFilePath . "/" . "index." . $extension); - } - } - } - - if( ($extension == "svg" || $extension == "woff" || $extension == "css" || $extension == "js") && $buffer && strlen($buffer) > 5 ) { - $create = true; - $file_name = base_convert(substr(time(), -6), 20, 36) . "."; - $buffer = trim($buffer); - - if( $extension == "js" ) { - if( substr($buffer, -1) != ";" ) { - $buffer .= ";"; - } - } - } - - if( $create ) { - if( !is_user_logged_in() && !$this->isCommenter() ) { - if( !is_dir($cachFilePath) ) { - if( is_writable(WCL_Cache_Helpers::getWpContentDir()) || ((is_dir(WCL_Cache_Helpers::getWpContentDir() . "/cache")) && (is_writable(WCL_Cache_Helpers::getWpContentDir() . "/cache"))) ) { - if( @mkdir($cachFilePath, 0755, true) ) { - - $buffer = (string)apply_filters('wclearfy_buffer_callback_filter', $buffer, $extension); - - file_put_contents($cachFilePath . "/" . $file_name . $extension, $buffer); - - if( $extension == "html" ) { - if( !file_exists(WP_CONTENT_DIR . "/cache/index.html") ) { - @file_put_contents(WP_CONTENT_DIR . "/cache/index.html", ""); - } - } else { - if( !file_exists(WP_CONTENT_DIR . "/cache/wclearfy-minified/index.html") ) { - @file_put_contents(WP_CONTENT_DIR . "/cache/wclearfy-minified/index.html", ""); - } - } - } else { - } - } else { - - } - } else { - if( file_exists($cachFilePath . "/" . $file_name . $extension) ) { - - } else { - $buffer = (string)apply_filters('wclearfy_buffer_callback_filter', $buffer, $extension); - - file_put_contents($cachFilePath . "/" . $file_name . $extension, $buffer); - } - } - } - } else if( $extension == "html" ) { - $this->err = "Buffer is empty so the cache cannot be created"; - } - } -} - -?> \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/helpers.php b/wp-content/plugins/!clearfy/components/cache/includes/helpers.php deleted file mode 100644 index 420269a0..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/helpers.php +++ /dev/null @@ -1,1258 +0,0 @@ - - * @copyright (c) 10.11.2020, Webcraftic - * @version 1.0 - */ - -class WCL_Cache_Helpers { - - /** - * Return if the server run on nginx - * - * @return bool - */ - public static function is_nginx() - { - $is_nginx = (strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false); - - return $is_nginx; - } - - public static function is_anymobilethemeswitcher_mobile() - { - // https://plugins.svn.wordpress.org/any-mobile-theme-switcher/tags/1.9/any-mobile-theme-switcher.php - $user_agent = $_SERVER['HTTP_USER_AGENT']; - - switch( true ) { - case (preg_match('/ipad/i', $user_agent)); - return true; - break; - - case (preg_match('/ipod/i', $user_agent) || preg_match('/iphone/i', $user_agent)); - return true; - break; - - case (preg_match('/android/i', $user_agent) && preg_match('/mobile/i', $user_agent)); - return true; - break; - - case (preg_match('/opera mini/i', $user_agent)); - return true; - break; - - case (preg_match('/blackberry/i', $user_agent)); - return true; - break; - - case (preg_match('/(pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/i', $user_agent)); - return true; - break; - - case (preg_match('/(iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile)/i', $user_agent)); - return true; - break; - - case (preg_match('/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |sonyericsson|samsung|240x|x320|vx10|nokia|sony cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|psp|treo)/i', $user_agent)); - return true; - break; - } - - return false; - } - - /** - * @param string $plugin - * - * @return bool - */ - public static function isPluginActive($plugin) - { - return in_array($plugin, (array)get_option('active_plugins', [])) || self::isPluginActiveForNetwork($plugin); - } - - /** - * @param string $plugin - * - * @return bool - */ - public static function isPluginActiveForNetwork($plugin) - { - if( !is_multisite() ) { - return false; - } - - $plugins = get_site_option('active_sitewide_plugins'); - if( isset($plugins[$plugin]) ) { - return true; - } - - return false; - } - - /** - * @param false $path - * - * @return string - */ - public static function getWpContentDir($path = false) - { - /* - Sample Paths; - - /cache/ - - /cache/all/ - /cache/all - /cache/all/page - /cache/all/index.html - - /cache/wclearfy-minified - - /cache/wclearfy-widget-cache - - /cache/wclearfy-mobile-cache/ - /cache/wclearfy-mobile-cache/page - /cache/wclearfy-mobile-cache/index.html - - /cache/tmpWclearfy - /cache/tmpWclearfy/ - /cache/tmpWclearfy/mobile_ - /cache/tmpWclearfy/m - /cache/tmpWclearfy/w - - - /cache/testWpFc/ - - /cache/all/testWpFc/ - - /cache/wclearfy-widget-cache/ - /cache/wclearfy-widget-cache - /cache/wclearfy-widget-cache/".$args["widget_id"].".html - */ - - if( $path ) { - if( preg_match("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", $path) ) { - //WPML language switch - //https://wpml.org/forums/topic/wpml-language-switch-wp-fastest-cache-issue/ - $language_negotiation_type = apply_filters('wpml_setting', false, 'language_negotiation_type'); - if( ($language_negotiation_type == 2) && self::isPluginActive('sitepress-multilingual-cms/sitepress.php') ) { - $my_home_url = apply_filters('wpml_home_url', get_option('home')); - $my_home_url = preg_replace("/https?\:\/\//i", "", $my_home_url); - $my_home_url = trim($my_home_url, "/"); - - $path = preg_replace("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", "/cache/" . $my_home_url . "/$1", $path); - } else if( ($language_negotiation_type == 1) && self::isPluginActive('sitepress-multilingual-cms/sitepress.php') ) { - $my_current_lang = apply_filters('wpml_current_language', null); - - if( $my_current_lang ) { - $path = preg_replace("/\/cache\/wclearfy-widget-cache\/(.+)/", "/cache/wclearfy-widget-cache/" . $my_current_lang . "-" . "$1", $path); - } - } - - if( self::isPluginActive('multiple-domain-mapping-on-single-site/multidomainmapping.php') ) { - $path = preg_replace("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", "/cache/" . $_SERVER['HTTP_HOST'] . "/$1", $path); - } - - if( self::isPluginActive('polylang/polylang.php') ) { - $path = preg_replace("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", "/cache/" . $_SERVER['HTTP_HOST'] . "/$1", $path); - } - - if( self::isPluginActive('multiple-domain/multiple-domain.php') ) { - $path = preg_replace("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", "/cache/" . $_SERVER['HTTP_HOST'] . "/$1", $path); - } - - if( is_multisite() ) { - $path = preg_replace("/\/cache\/(all|wclearfy-minified|wclearfy-widget-cache|wclearfy-mobile-cache)/", "/cache/" . $_SERVER['HTTP_HOST'] . "/$1", $path); - } - } - - return WP_CONTENT_DIR . $path; - } else { - return WP_CONTENT_DIR; - } - } - - public static function is_trailing_slash() - { - // no need to check if Custom Permalinks plugin is active (https://tr.wordpress.org/plugins/custom-permalinks/) - if( self::isPluginActive("custom-permalinks/custom-permalinks.php") ) { - return false; - } - - if( $permalink_structure = get_option('permalink_structure') ) { - if( preg_match("/\/$/", $permalink_structure) ) { - return true; - } - } - - return false; - } - - public static function get_excluded_useragent() - { - $excluded_user_agents = WCL_Plugin::app()->getPopulateOption('cache_reject_user_agents'); - - if( !empty($excluded_user_agents) ) { - $excluded_user_agents = array_map(function ($value) { - $value = trim(rtrim($value)); - return $value; - }, preg_split('/\r\n|\n|\r/', $excluded_user_agents)); - } else { - $excluded_user_agents = []; - } - - $agents = implode("|", $excluded_user_agents); - - return $agents; - } - - public static function get_mobile_browsers() - { - $mobile_browsers = [ - '\bCrMo\b|CriOS|Android.*Chrome\/[.0-9]*\s(Mobile)?', - '\bDolfin\b', - 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+', - 'Skyfire', - 'Mobile\sSafari\/[.0-9]*\sEdge', - 'IEMobile|MSIEMobile', - // |Trident/[.0-9]+ - 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS', - 'bolt', - 'teashark', - 'Blazer', - 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari', - 'Tizen', - 'UC.*Browser|UCWEB', - 'baiduboxapp', - 'baidubrowser', - 'DiigoBrowser', - 'Puffin', - '\bMercury\b', - 'Obigo', - 'NF-Browser', - 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger', - 'Android.*PaleMoon|Mobile.*PaleMoon' - ]; - - return $mobile_browsers; - } - - public static function get_operating_systems() - { - $operating_systems = [ - 'Android', - 'blackberry|\bBB10\b|rim\stablet\sos', - 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino', - 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b', - 'Windows\sCE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window\sMobile|Windows\sPhone\s[0-9.]+|WCE;', - 'Windows\sPhone\s10.0|Windows\sPhone\s8.1|Windows\sPhone\s8.0|Windows\sPhone\sOS|XBLWP7|ZuneWP7|Windows\sNT\s6\.[23]\;\sARM\;', - '\biPhone.*Mobile|\biPod|\biPad', - 'Apple-iPhone7C2', - 'MeeGo', - 'Maemo', - 'J2ME\/|\bMIDP\b|\bCLDC\b', - // '|Java/' produces bug #135 - 'webOS|hpwOS', - '\bBada\b', - 'BREW' - ]; - - return $operating_systems; - } - - public function is_amp($content) - { - $request_uri = trim($_SERVER["REQUEST_URI"], "/"); - - if( preg_match("/^amp/", $request_uri) || preg_match("/\/amp\//", $request_uri) || preg_match("/amp$/", $request_uri) ) { - if( preg_match("/]+amp[^\>]*>/i", $content) ) { - return true; - } - - if( preg_match("/]+\⚡[^\>]*>/i", $content) ) { - return true; - } - } - - return false; - } - - public static function isMobile() - { - foreach(self::get_mobile_browsers() as $value) { - if( preg_match("/" . $value . "/i", $_SERVER['HTTP_USER_AGENT']) ) { - return true; - } - } - - foreach(self::get_operating_systems() as $key => $value) { - if( preg_match("/" . $value . "/i", $_SERVER['HTTP_USER_AGENT']) ) { - return true; - } - } - - if( isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] ) { - return true; - } - - if( isset($_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] ) { - return true; - } - - return false; - } - - public static function isWpLogin($buffer) - { - // if(preg_match("/]+loginform[^\>]+>((?:(?!<\/form).)+)user_login((?:(?!<\/form).)+)user_pass((?:(?!<\/form).)+)<\/form>/si", $buffer)){ - // return true; - // } - if( $GLOBALS["pagenow"] == "wp-login.php" ) { - return true; - } - - return false; - } - - public static function hasContactForm7WithCaptcha($buffer) - { - if( is_single() || is_page() ) { - if( preg_match("/]+_wpcf7_captcha[^\>]+>/i", $buffer) ) { - return true; - } - } - - return false; - } - - public static function is_wptouch_smartphone() - { - // https://plugins.svn.wordpress.org/wptouch/tags/4.0.4/core/mobile-user-agents.php - // wptouch: ipad is accepted as a desktop so no need to create cache if user agent is ipad - // https://wordpress.org/support/topic/plugin-wptouch-wptouch-wont-display-mobile-version-on-ipad?replies=12 - if( preg_match("/ipad/i", $_SERVER['HTTP_USER_AGENT']) ) { - return false; - } - - $wptouch_smartphone_list = []; - - $wptouch_smartphone_list[] = ['iPhone']; // iPhone - $wptouch_smartphone_list[] = ['Android', 'Mobile']; // Android devices - $wptouch_smartphone_list[] = ['BB', 'Mobile Safari']; // BB10 devices - $wptouch_smartphone_list[] = ['BlackBerry', 'Mobile Safari']; // BB 6, 7 devices - $wptouch_smartphone_list[] = ['Firefox', 'Mobile']; // Firefox OS devices - $wptouch_smartphone_list[] = ['IEMobile/11', 'Touch']; // Windows IE 11 touch devices - $wptouch_smartphone_list[] = ['IEMobile/10', 'Touch']; // Windows IE 10 touch devices - $wptouch_smartphone_list[] = ['IEMobile/9.0']; // Windows Phone OS 9 - $wptouch_smartphone_list[] = ['IEMobile/8.0']; // Windows Phone OS 8 - $wptouch_smartphone_list[] = ['IEMobile/7.0']; // Windows Phone OS 7 - $wptouch_smartphone_list[] = ['OPiOS', 'Mobile']; // Opera Mini iOS - $wptouch_smartphone_list[] = ['Coast', 'Mobile']; // Opera Coast iOS - - foreach($wptouch_smartphone_list as $key => $value) { - if( isset($value[0]) && isset($value[1]) ) { - if( preg_match("/" . preg_quote($value[0], "/") . "/i", $_SERVER['HTTP_USER_AGENT']) ) { - if( preg_match("/" . preg_quote($value[1], "/") . "/i", $_SERVER['HTTP_USER_AGENT']) ) { - return true; - } - } - } else if( isset($value[0]) ) { - if( preg_match("/" . preg_quote($value[0], "/") . "/i", $_SERVER['HTTP_USER_AGENT']) ) { - return true; - } - } - } - - return false; - } - - public static function is_subdirectory_install() - { - if( strlen(site_url()) > strlen(home_url()) ) { - return true; - } - - return false; - } - - public static function getABSPATH() - { - $path = ABSPATH; - $siteUrl = site_url(); - $homeUrl = home_url(); - $diff = str_replace($homeUrl, "", $siteUrl); - $diff = trim($diff, "/"); - - $pos = strrpos($path, $diff); - - if( $pos !== false ) { - $path = substr_replace($path, "", $pos, strlen($diff)); - $path = trim($path, "/"); - $path = "/" . $path . "/"; - } - - return $path; - } - - public static function checkSuperCache($path, $htaccess) - { - if( self::isPluginActive('wp-super-cache/wp-cache.php') ) { - return ["WP Super Cache needs to be deactive", "error"]; - } else { - @unlink($path . "wp-content/wp-cache-config.php"); - - $message = ""; - - if( is_file($path . "wp-content/wp-cache-config.php") ) { - $message .= "
      - be sure that you removed /wp-content/wp-cache-config.php"; - } - - if( preg_match("/supercache/", $htaccess) ) { - $message .= "
      - be sure that you removed the rules of super cache from the .htaccess"; - } - - return $message ? [ - "WP Super Cache cannot remove its own remnants so please follow the steps below" . $message, - "error" - ] : ""; - } - - return ""; - } - - public static function warningIncompatible($incompatible, $alternative = false) - { - if( $alternative ) { - throw new Exception($incompatible . "
      " . $alternative["name"] . ""); - } else { - throw new Exception($incompatible . " "); - } - } - - public static function insertRewriteRule($htaccess) - { - $enable_cache = WCL_Plugin::app()->getPopulateOption('enable_cache'); - - if( $enable_cache ) { - $htaccess = preg_replace("/#\s?BEGIN\s?WClearfyCache.*?#\s?END\s?WClearfyCache/s", "", $htaccess); - $htaccess = self::getHtaccess() . $htaccess; - } else { - $htaccess = preg_replace("/#\s?BEGIN\s?WClearfyCache.*?#\s?END\s?WClearfyCache/s", "", $htaccess); - self::deleteCache(); - } - - return $htaccess; - } - - public static function prefixRedirect() - { - $forceTo = ""; - - if( defined("WCLEARFY_DISABLE_REDIRECTION") && WCLEARFY_DISABLE_REDIRECTION ) { - return $forceTo; - } - - if( preg_match("/^https:\/\//", home_url()) ) { - if( preg_match("/^https:\/\/www\./", home_url()) ) { - $forceTo = "\nRewriteCond %{HTTPS} =on" . "\n" . "RewriteCond %{HTTP_HOST} ^www." . str_replace("www.", "", $_SERVER["HTTP_HOST"]) . "\n"; - } else { - $forceTo = "\nRewriteCond %{HTTPS} =on" . "\n" . "RewriteCond %{HTTP_HOST} ^" . str_replace("www.", "", $_SERVER["HTTP_HOST"]) . "\n"; - } - } else { - if( preg_match("/^http:\/\/www\./", home_url()) ) { - $forceTo = "\nRewriteCond %{HTTP_HOST} ^" . str_replace("www.", "", $_SERVER["HTTP_HOST"]) . "\n" . "RewriteRule ^(.*)$ " . preg_quote(home_url(), "/") . "\/$1 [R=301,L]" . "\n"; - } else { - $forceTo = "\nRewriteCond %{HTTP_HOST} ^www." . str_replace("www.", "", $_SERVER["HTTP_HOST"]) . " [NC]" . "\n" . "RewriteRule ^(.*)$ " . preg_quote(home_url(), "/") . "\/$1 [R=301,L]" . "\n"; - } - } - - return $forceTo; - } - - public static function getHtaccess() - { - $mobile = ""; - $loggedInUser = ""; - $ifIsNotSecure = ""; - $trailing_slash_rule = ""; - $consent_cookie = ""; - - $language_negotiation_type = apply_filters('wpml_setting', false, 'language_negotiation_type'); - if( ($language_negotiation_type == 2) && self::isPluginActive('sitepress-multilingual-cms/sitepress.php') ) { - $cache_path = '/cache/all/%{HTTP_HOST}/'; - $disable_condition = true; - } else { - $cache_path = '/cache/all/'; - $disable_condition = false; - } - - if( isset($_POST["wpFastestCacheMobile"]) && $_POST["wpFastestCacheMobile"] == "on" ) { - $mobile = "RewriteCond %{HTTP_USER_AGENT} !^.*(" . self::getMobileUserAgents() . ").*$ [NC]" . "\n"; - - if( isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']) ) { - $mobile = $mobile . "RewriteCond %{HTTP_CLOUDFRONT_IS_MOBILE_VIEWER} false [NC]" . "\n"; - $mobile = $mobile . "RewriteCond %{HTTP_CLOUDFRONT_IS_TABLET_VIEWER} false [NC]" . "\n"; - } - } - - if( isset($_POST["wpFastestCacheLoggedInUser"]) && $_POST["wpFastestCacheLoggedInUser"] == "on" ) { - $loggedInUser = "RewriteCond %{HTTP:Cookie} !wordpress_logged_in" . "\n"; - } - - if( !preg_match("/^https/i", get_option("home")) ) { - $ifIsNotSecure = "RewriteCond %{HTTPS} !=on"; - } - - if( self::is_trailing_slash() ) { - $trailing_slash_rule = "RewriteCond %{REQUEST_URI} \/$" . "\n"; - } else { - $trailing_slash_rule = "RewriteCond %{REQUEST_URI} ![^\/]+\/$" . "\n"; - } - - $data = "# BEGIN WClearfyCache" . "\n" . "# Modified Time: " . date("d-m-y G:i:s", current_time('timestamp')) . "\n" . "" . "\n" . "RewriteEngine On" . "\n" . "RewriteBase /" . "\n" . self::ruleForWpContent() . "\n" . self::prefixRedirect() . self::excludeRules() . "\n" . self::excludeAdminCookie() . "\n" . self::http_condition_rule() . "\n" . "RewriteCond %{HTTP_USER_AGENT} !(" . self::get_excluded_useragent() . ")" . "\n" . "RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)" . "\n" . "RewriteCond %{REQUEST_METHOD} !POST" . "\n" . $ifIsNotSecure . "\n" . "RewriteCond %{REQUEST_URI} !(\/){2}$" . "\n" . $trailing_slash_rule . "RewriteCond %{QUERY_STRING} !.+" . "\n" . $loggedInUser . $consent_cookie . "RewriteCond %{HTTP:Cookie} !comment_author_" . "\n" . //"RewriteCond %{HTTP:Cookie} !woocommerce_items_in_cart"."\n". - "RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil" . "\n" . 'RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]' . "\n" . $mobile; - - if( ABSPATH == "//" ) { - $data = $data . "RewriteCond %{DOCUMENT_ROOT}/" . basename(WP_CONTENT_DIR) . $cache_path . "$1/index.html -f" . "\n"; - } else { - //WARNING: If you change the following lines, you need to update webp as well - $data = $data . "RewriteCond %{DOCUMENT_ROOT}/" . basename(WP_CONTENT_DIR) . $cache_path . "$1/index.html -f [or]" . "\n"; - // to escape spaces - $tmp_WCLEARFY_WP_CONTENT_DIR = str_replace(" ", "\ ", WP_CONTENT_DIR); - - $data = $data . "RewriteCond " . $tmp_WCLEARFY_WP_CONTENT_DIR . $cache_path . self::getRewriteBase(true) . "$1/index.html -f" . "\n"; - } - - $data = $data . 'RewriteRule ^(.*) "/' . self::getRewriteBase() . basename(WP_CONTENT_DIR) . $cache_path . self::getRewriteBase(true) . '$1/index.html" [L]' . "\n"; - - //RewriteRule !/ "/wp-content/cache/all/index.html" [L] - - /*if( class_exists("WCL_MobileCache") && isset($this->options->wpFastestCacheMobileTheme) && $this->options->wpFastestCacheMobileTheme ) { - $wclearfy_mobile = new WCL_MobileCache(); - - if( $this->isPluginActive('wptouch/wptouch.php') || $this->isPluginActive('wptouch-pro/wptouch-pro.php') ) { - $wclearfy_mobile->set_wptouch(true); - } else { - $wclearfy_mobile->set_wptouch(false); - } - - $data = $data . "\n\n\n" . $wclearfy_mobile->update_htaccess($data); - }*/ - - $data = $data . "" . "\n" . "" . "\n" . "AddDefaultCharset UTF-8" . "\n" . "" . "\n" . "FileETag None" . "\n" . "Header unset ETag" . "\n" . "Header set Cache-Control \"max-age=0, no-cache, no-store, must-revalidate\"" . "\n" . "Header set Pragma \"no-cache\"" . "\n" . "Header set Expires \"Mon, 29 Oct 1923 20:30:00 GMT\"" . "\n" . "" . "\n" . "" . "\n" . "# END WClearfyCache" . "\n"; - - if( is_multisite() ) { - return ""; - } else { - return preg_replace("/\n+/", "\n", $data); - } - } - - public static function http_condition_rule() - { - $http_host = preg_replace("/(http(s?)\:)?\/\/(www\d*\.)?/i", "", trim(home_url(), "/")); - - if( preg_match("/\//", $http_host) ) { - $http_host = strstr($http_host, '/', true); - } - - if( preg_match("/www\./", home_url()) ) { - $http_host = "www." . $http_host; - } - - return "RewriteCond %{HTTP_HOST} ^" . $http_host; - } - - public static function ruleForWpContent() - { - $newContentPath = str_replace(home_url(), "", content_url()); - if( !preg_match("/wp-content/", $newContentPath) ) { - $newContentPath = trim($newContentPath, "/"); - - return "RewriteRule ^" . $newContentPath . "/cache/(.*) " . WP_CONTENT_DIR . "/cache/$1 [L]" . "\n"; - } - - return ""; - } - - public static function getRewriteBase($sub = "") - { - if( $sub && self::is_subdirectory_install() ) { - $trimedProtocol = preg_replace("/http:\/\/|https:\/\//", "", trim(home_url(), "/")); - $path = strstr($trimedProtocol, '/'); - - if( $path ) { - return trim($path, "/") . "/"; - } else { - return ""; - } - } - - $url = rtrim(site_url(), "/"); - preg_match("/https?:\/\/[^\/]+(.*)/", $url, $out); - - if( isset($out[1]) && $out[1] ) { - $out[1] = trim($out[1], "/"); - - if( preg_match("/\/" . preg_quote($out[1], "/") . "\//", WP_CONTENT_DIR) ) { - return $out[1] . "/"; - } else { - return ""; - } - } else { - return ""; - } - } - - public static function singleDeleteCache($comment_id = false, $post_id = false) - { - - $to_clear_parents = true; - $to_clear_feed = true; - - // not to clear cache of homepage/cats/tags after ajax request by other plugins - if( isset($_POST) && isset($_POST["action"]) ) { - // kk Star Rating - if( $_POST["action"] == "kksr_ajax" ) { - $to_clear_parents = false; - } - - // All In One Schema.org Rich Snippets - if( preg_match("/bsf_(update|submit)_rating/i", $_POST["action"]) ) { - $to_clear_parents = false; - } - - // Yet Another Stars Rating - if( $_POST["action"] == "yasr_send_visitor_rating" ) { - $to_clear_parents = false; - $post_id = $_POST["post_id"]; - } - - // All In One Schema.org Rich Snippets - if( preg_match("/bsf_(update|submit)_rating/i", $_POST["action"]) ) { - $to_clear_feed = false; - } - } - - if( $comment_id ) { - $comment_id = intval($comment_id); - - $comment = get_comment($comment_id); - - if( $comment && $comment->comment_post_ID ) { - $post_id = $comment->comment_post_ID; - } - } - - if( $post_id ) { - $post_id = intval($post_id); - - $permalink = urldecode(get_permalink($post_id)); - - //for trash contents - $permalink = rtrim($permalink, "/"); - $permalink = preg_replace("/__trashed$/", "", $permalink); - //for /%postname%/%post_id% : sample-url__trashed/57595 - $permalink = preg_replace("/__trashed\/(\d+)$/", "/$1", $permalink); - - if( preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out) ) { - $path = self::getWpContentDir("/cache/all/") . $out[1]; - $mobile_path = self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $out[1]; - - $files = []; - - if( is_dir($path) ) { - array_push($files, $path); - } - - if( is_dir($mobile_path) ) { - array_push($files, $mobile_path); - } - - if( defined('WCACHE_QUERYSTRING') && WCACHE_QUERYSTRING ) { - $files_with_query_string = glob($path . "\?*"); - $mobile_files_with_query_string = glob($mobile_path . "\?*"); - - if( is_array($files_with_query_string) && (count($files_with_query_string) > 0) ) { - $files = array_merge($files, $files_with_query_string); - } - - if( is_array($mobile_files_with_query_string) && (count($mobile_files_with_query_string) > 0) ) { - $files = array_merge($files, $mobile_files_with_query_string); - } - } - - if( $to_clear_feed ) { - // to clear cache of /feed - if( preg_match("/https?:\/\/[^\/]+\/(.+)/", get_feed_link(), $feed_out) ) { - array_push($files, self::getWpContentDir("/cache/all/") . $feed_out[1]); - } - - // to clear cache of /comments/feed/ - if( preg_match("/https?:\/\/[^\/]+\/(.+)/", get_feed_link("comments_"), $comment_feed_out) ) { - array_push($files, self::getWpContentDir("/cache/all/") . $comment_feed_out[1]); - } - } - - foreach((array)$files as $file) { - self::rm_folder_recursively($file); - } - } - - if( $to_clear_parents ) { - // to clear cache of homepage - self::deleteHomePageCache(); - - // to clear cache of author page - self::delete_author_page_cache($post_id); - - // to clear sitemap cache - self::delete_sitemap_cache(); - - // to clear cache of cats and tags which contains the post (only first page) - global $wpdb; - $terms = $wpdb->get_results("SELECT * FROM `" . $wpdb->prefix . "term_relationships` WHERE `object_id`=" . $post_id, ARRAY_A); - - foreach($terms as $term_key => $term_val) { - self::delete_cache_of_term($term_val["term_taxonomy_id"]); - } - } - - self::delete_multiple_domain_mapping_cache(); - } - } - - public static function delete_cache_of_term($term_taxonomy_id) - { - $term = get_term_by("term_taxonomy_id", $term_taxonomy_id); - - if( !$term || is_wp_error($term) ) { - return false; - } - - //if(preg_match("/cat|tag|store|listing/", $term->taxonomy)){} - - $url = get_term_link($term->term_id, $term->taxonomy); - - if( preg_match("/^http/", $url) ) { - $path = preg_replace("/https?\:\/\/[^\/]+/i", "", $url); - $path = trim($path, "/"); - $path = urldecode($path); - - // to remove the cache of tag/cat - if( file_exists(self::getWpContentDir("/cache/all/") . $path . "/index.html") ) { - @unlink(self::getWpContentDir("/cache/all/") . $path . "/index.html"); - } - - if( file_exists(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $path . "/index.html") ) { - @unlink(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $path . "/index.html"); - } - - // to remove the cache of the pages - self::rm_folder_recursively(self::getWpContentDir("/cache/all/") . $path . "/page"); - self::rm_folder_recursively(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $path . "/page"); - - // to remove the cache of the feeds - self::rm_folder_recursively(self::getWpContentDir("/cache/all/") . $path . "/feed"); - self::rm_folder_recursively(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $path . "/feed"); - } - - if( $term->parent > 0 ) { - $parent = get_term_by("id", $term->parent, $term->taxonomy); - self::delete_cache_of_term($parent->term_taxonomy_id); - } - } - - public static function delete_author_page_cache($post_id) - { - $author_id = get_post_field('post_author', $post_id); - $permalink = get_author_posts_url($author_id); - - if( preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out) ) { - $path = self::getWpContentDir("/cache/all/") . $out[1]; - $mobile_path = self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $out[1]; - - self::rm_folder_recursively($path); - self::rm_folder_recursively($mobile_path); - } - } - - public static function delete_sitemap_cache() - { - //to clear sitemap.xml and sitemap-(.+).xml - $files = array_merge(glob(self::getWpContentDir("/cache/all/") . "sitemap*.xml"), glob(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . "sitemap*.xml")); - - foreach((array)$files as $file) { - self::rm_folder_recursively($file); - } - } - - public static function deleteHomePageCache() - { - $site_url_path = preg_replace("/https?\:\/\/[^\/]+/i", "", site_url()); - $home_url_path = preg_replace("/https?\:\/\/[^\/]+/i", "", home_url()); - - if( $site_url_path ) { - $site_url_path = trim($site_url_path, "/"); - - if( $site_url_path ) { - @unlink(self::getWpContentDir("/cache/all/") . $site_url_path . "/index.html"); - @unlink(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $site_url_path . "/index.html"); - - //to clear pagination of homepage cache - self::rm_folder_recursively(self::getWpContentDir("/cache/all/") . $site_url_path . "/page"); - self::rm_folder_recursively(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $site_url_path . "/page"); - } - } - - if( $home_url_path ) { - $home_url_path = trim($home_url_path, "/"); - - if( $home_url_path ) { - @unlink(self::getWpContentDir("/cache/all/") . $home_url_path . "/index.html"); - @unlink(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $home_url_path . "/index.html"); - - //to clear pagination of homepage cache - self::rm_folder_recursively(self::getWpContentDir("/cache/all/") . $home_url_path . "/page"); - self::rm_folder_recursively(self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $home_url_path . "/page"); - } - } - - if( file_exists(self::getWpContentDir("/cache/all/index.html")) ) { - @unlink(self::getWpContentDir("/cache/all/index.html")); - } - - if( file_exists(self::getWpContentDir("/cache/wclearfy-mobile-cache/index.html")) ) { - @unlink(self::getWpContentDir("/cache/wclearfy-mobile-cache/index.html")); - } - - //to clear pagination of homepage cache - self::rm_folder_recursively(self::getWpContentDir("/cache/all/page")); - self::rm_folder_recursively(self::getWpContentDir("/cache/wclearfy-mobile-cache/page")); - - // options-reading.php - static posts page - if( $page_for_posts_id = get_option('page_for_posts') ) { - $page_for_posts_permalink = urldecode(get_permalink($page_for_posts_id)); - - $page_for_posts_permalink = rtrim($page_for_posts_permalink, "/"); - $page_for_posts_permalink = preg_replace("/__trashed$/", "", $page_for_posts_permalink); - //for /%postname%/%post_id% : sample-url__trashed/57595 - $page_for_posts_permalink = preg_replace("/__trashed\/(\d+)$/", "/$1", $page_for_posts_permalink); - - if( preg_match("/https?:\/\/[^\/]+\/(.+)/", $page_for_posts_permalink, $out) ) { - $page_for_posts_path = self::getWpContentDir("/cache/all/") . $out[1]; - $page_for_posts_mobile_path = self::getWpContentDir("/cache/wclearfy-mobile-cache/") . $out[1]; - - self::rm_folder_recursively($page_for_posts_path); - self::rm_folder_recursively($page_for_posts_mobile_path); - } - } - } - - public static function deleteCache($minified = false) - { - $created_tmpWclearfy = false; - $cache_deleted = false; - $minifed_deleted = false; - - $cache_path = self::getWpContentDir("/cache/all"); - $minified_cache_path = self::getWpContentDir("/cache/wclearfy-minified"); - - if( class_exists("WCL_MobileCache") ) { - if( is_dir(self::getWpContentDir("/cache/wclearfy-mobile-cache")) ) { - if( is_dir(self::getWpContentDir("/cache/tmpWclearfy")) ) { - rename(self::getWpContentDir("/cache/wclearfy-mobile-cache"), self::getWpContentDir("/cache/tmpWclearfy/mobile_") . time()); - } else if( @mkdir(self::getWpContentDir("/cache/tmpWclearfy"), 0755, true) ) { - rename(self::getWpContentDir("/cache/wclearfy-mobile-cache"), self::getWpContentDir("/cache/tmpWclearfy/mobile_") . time()); - } - } - } - - if( !is_dir(self::getWpContentDir("/cache/tmpWclearfy")) ) { - if( @mkdir(self::getWpContentDir("/cache/tmpWclearfy"), 0755, true) ) { - $created_tmpWclearfy = true; - } else { - $created_tmpWclearfy = false; - //$this->systemMessage = array("Permission of /wp-content/cache must be 755", "error"); - } - } else { - $created_tmpWclearfy = true; - } - - //to clear widget cache path - self::deleteWidgetCache(); - - self::delete_multiple_domain_mapping_cache($minified); - - if( is_dir($cache_path) ) { - if( @rename($cache_path, self::getWpContentDir("/cache/tmpWclearfy/") . time()) ) { - $cache_deleted = true; - } - } else { - $cache_deleted = true; - } - - if( $minified ) { - if( is_dir($minified_cache_path) ) { - if( @rename($minified_cache_path, self::getWpContentDir("/cache/tmpWclearfy/m") . time()) ) { - - $minifed_deleted = true; - } - } else { - $minifed_deleted = true; - } - } else { - $minifed_deleted = true; - } - - if( $created_tmpWclearfy && $cache_deleted && $minifed_deleted ) { - do_action('wclearfy_delete_cache'); - - self::rm_folder_recursively(self::getWpContentDir("/cache/tmpWclearfy")); - - return true; - } else { - // ошибка - } - } - - public static function delete_multiple_domain_mapping_cache($minified = false) - { - //https://wordpress.org/plugins/multiple-domain-mapping-on-single-site/ - if( self::isPluginActive("multiple-domain-mapping-on-single-site/multidomainmapping.php") ) { - $multiple_arr = get_option('falke_mdm_mappings'); - - if( isset($multiple_arr) && isset($multiple_arr["mappings"]) && isset($multiple_arr["mappings"][0]) ) { - foreach($multiple_arr["mappings"] as $mapping_key => $mapping_value) { - if( $minified ) { - $mapping_domain_path = preg_replace("/(\/cache\/[^\/]+\/all\/)/", "/cache/" . $mapping_value["domain"] . "/", self::getWpContentDir("/cache/all/")); - - if( is_dir($mapping_domain_path) ) { - if( @rename($mapping_domain_path, self::getWpContentDir("/cache/tmpWclearfy/") . $mapping_value["domain"] . "_" . time()) ) { - - } - } - } else { - $mapping_domain_path = preg_replace("/(\/cache\/[^\/]+\/all)/", "/cache/" . $mapping_value["domain"] . "/all", self::getWpContentDir("/cache/all/index.html")); - - @unlink($mapping_domain_path); - } - } - } - } - } - - public static function deleteWidgetCache() - { - $widget_cache_path = self::getWpContentDir("/cache/wclearfy-widget-cache"); - - if( is_dir($widget_cache_path) ) { - if( !is_dir(self::getWpContentDir("/cache/tmpWclearfy")) ) { - if( @mkdir(self::getWpContentDir("/cache/tmpWclearfy"), 0755, true) ) { - //tmpWclearfy has been created - } - } - - if( @rename($widget_cache_path, self::getWpContentDir("/cache/tmpWclearfy/w") . time()) ) { - //DONE - } - } - } - - public static function to_move_gtranslate_rules($htaccess) - { - preg_match("/\#\#\#\s+BEGIN\sGTranslate\sconfig\s\#\#\#[^\#]+\#\#\#\s+END\sGTranslate\sconfig\s\#\#\#/i", $htaccess, $gtranslate); - - if( isset($gtranslate[0]) ) { - $htaccess = preg_replace("/\#\#\#\s+BEGIN\sGTranslate\sconfig\s\#\#\#[^\#]+\#\#\#\s+END\sGTranslate\sconfig\s\#\#\#/i", "", $htaccess); - $htaccess = $gtranslate[0] . "\n" . $htaccess; - } - - return $htaccess; - } - - public static function getMobileUserAgents() - { - return implode("|", self::get_mobile_browsers()) . "|" . implode("|", self::get_operating_systems()); - } - - public static function rm_folder_recursively($dir, $i = 1) - { - if( is_dir($dir) ) { - $files = @scandir($dir); - foreach((array)$files as $file) { - if( $i > 50 && !preg_match("/wp-fastest-cache-premium/i", $dir) ) { - return true; - } else { - $i++; - } - if( '.' === $file || '..' === $file ) { - continue; - } - if( is_dir("$dir/$file") ) { - self::rm_folder_recursively("$dir/$file", $i); - } else { - if( file_exists("$dir/$file") ) { - @unlink("$dir/$file"); - } - } - } - } - - if( is_dir($dir) ) { - $files_tmp = @scandir($dir); - - if( !isset($files_tmp[2]) ) { - @rmdir($dir); - } - } - - return true; - } - - public static function excludeAdminCookie() - { - $rules = ""; - $users_groups = array_chunk(get_users(["role" => "administrator", "fields" => ["user_login"]]), 5); - - foreach($users_groups as $group_key => $group) { - $tmp_users = ""; - $tmp_rule = ""; - - foreach($group as $key => $value) { - if( $tmp_users ) { - $tmp_users = $tmp_users . "|" . sanitize_user(wp_unslash($value->user_login), true); - } else { - $tmp_users = sanitize_user(wp_unslash($value->user_login), true); - } - - // to replace spaces with \s - $tmp_users = preg_replace("/\s/", "\s", $tmp_users); - - if( !next($group) ) { - $tmp_rule = "RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=" . $tmp_users; - } - } - - if( $rules ) { - $rules = $rules . "\n" . $tmp_rule; - } else { - $rules = $tmp_rule; - } - } - - return "# Start_WCLEARFY_Exclude_Admin_Cookie\n" . $rules . "\n# End_WCLEARFY_Exclude_Admin_Cookie\n"; - } - - public static function excludeRules() - { - $uris = WCL_Plugin::app()->getPopulateOption('cache_reject_uri'); - - if( !empty($uris) ) { - $uris = array_map(function ($value) { - $site_url = site_url(); - - $value = trim(rtrim($value)); - // http://clearfy.pro/members/ -> /members/ - $value = str_replace($site_url, "", $value); - // /members/(.*) -> members/(.*) - $value = preg_replace("/^\//", "", $value); - // members/ -> members - $value = untrailingslashit($value); - - if( empty($value) ) { - return "RewriteCond %{REQUEST_URI} !^/$ [NC]"; - } - - return "RewriteCond %{REQUEST_URI} !^/" . $value . " [NC]"; - }, preg_split('/\r\n|\n|\r/', $uris)); - } else { - $uris = []; - } - - return "# Start WCLEARFY Exclude\n" . implode("\n", $uris) . "\n# End WCLEARFY Exclude\n"; - } - - - public static function modifyHtaccess() - { - $path = ABSPATH; - if( self::is_subdirectory_install() ) { - $path = self::getABSPATH(); - } - - // if(isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && preg_match("/iis/i", $_SERVER["SERVER_SOFTWARE"])){ - // return array("The plugin does not work with Microsoft IIS. Only with Apache", "error"); - // } - - // if(isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && preg_match("/nginx/i", $_SERVER["SERVER_SOFTWARE"])){ - // return array("The plugin does not work with Nginx. Only with Apache", "error"); - // } - - if( !file_exists($path . ".htaccess") ) { - if( isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && (preg_match("/iis/i", $_SERVER["SERVER_SOFTWARE"]) || preg_match("/nginx/i", $_SERVER["SERVER_SOFTWARE"])) ) { - // - } else { - throw new Exception(" Read More", 98); - } - } - - if( self::isPluginActive('wp-postviews/wp-postviews.php') ) { - $wp_postviews_options = get_option("views_options"); - $wp_postviews_options["use_ajax"] = true; - update_option("views_options", $wp_postviews_options); - - if( !WP_CACHE ) { - if( $wp_config = @file_get_contents(ABSPATH . "wp-config.php") ) { - $wp_config = str_replace("\$table_prefix", "define('WP_CACHE', true);\n\$table_prefix", $wp_config); - - if( !@file_put_contents(ABSPATH . "wp-config.php", $wp_config) ) { - throw new Exception("define('WP_CACHE', true); is needed to be added into wp-config.php", 99); - } - } else { - throw new Exception("define('WP_CACHE', true); is needed to be added into wp-config.php", 99); - } - } - } - - $htaccess = @file_get_contents($path . ".htaccess"); - - // if(defined('DONOTCACHEPAGE')){ - // return array("DONOTCACHEPAGE ", "error"); - // }else - - if( !get_option('permalink_structure') ) { - throw new Exception("You have to set permalinks", 100); - } else if( $res = self::checkSuperCache($path, $htaccess) ) { - return $res; - } else if( self::isPluginActive('fast-velocity-minify/fvm.php') ) { - throw new Exception("Fast Velocity Minify needs to be deactivated", 101); - } else if( self::isPluginActive('far-future-expiration/far-future-expiration.php') ) { - throw new Exception("Far Future Expiration Plugin needs to be deactivated", 102); - } else if( self::isPluginActive('sg-cachepress/sg-cachepress.php') ) { - throw new Exception("SG Optimizer needs to be deactived", 103); - } else if( self::isPluginActive('adrotate/adrotate.php') || self::isPluginActive('adrotate-pro/adrotate.php') ) { - //return self::warningIncompatible("AdRotate"); - throw new Exception("AdRotate needs to be deactived", 104); - } else if( self::isPluginActive('mobilepress/mobilepress.php') ) { - /*return self::warningIncompatible("MobilePress", array( - "name" => "WPtouch Mobile", - "url" => "https://wordpress.org/plugins/wptouch/" - ));*/ - throw new Exception("MobilePress needs to be deactived", 105); - } else if( self::isPluginActive('speed-booster-pack/speed-booster-pack.php') ) { - throw new Exception("Speed Booster Pack needs to be deactivated
      ", 106); - } else if( self::isPluginActive('wp-performance-score-booster/wp-performance-score-booster.php') ) { - throw new Exception("WP Performance Score Booster needs to be deactivated
      This plugin has aldready Gzip, Leverage Browser Caching features", 107); - } else if( self::isPluginActive('bwp-minify/bwp-minify.php') ) { - throw new Exception("Better WordPress Minify needs to be deactivated
      This plugin has aldready Minify feature", 108); - } else if( self::isPluginActive('check-and-enable-gzip-compression/richards-toolbox.php') ) { - throw new Exception("Check and Enable GZIP compression needs to be deactivated
      This plugin has aldready Gzip feature", 109); - } else if( self::isPluginActive('gzippy/gzippy.php') ) { - throw new Exception("GZippy needs to be deactivated
      This plugin has aldready Gzip feature", 110); - } else if( self::isPluginActive('gzip-ninja-speed-compression/gzip-ninja-speed.php') ) { - throw new Exception("GZip Ninja Speed Compression needs to be deactivated
      This plugin has aldready Gzip feature", 111); - } else if( self::isPluginActive('wordpress-gzip-compression/ezgz.php') ) { - throw new Exception("WordPress Gzip Compression needs to be deactivated
      This plugin has aldready Gzip feature", 112); - } else if( self::isPluginActive('filosofo-gzip-compression/filosofo-gzip-compression.php') ) { - throw new Exception("GZIP Output needs to be deactivated
      This plugin has aldready Gzip feature", 113); - } else if( self::isPluginActive('head-cleaner/head-cleaner.php') ) { - throw new Exception("Head Cleaner needs to be deactivated", 114); - } else if( self::isPluginActive('far-future-expiry-header/far-future-expiration.php') ) { - throw new Exception("Far Future Expiration Plugin needs to be deactivated", 115); - } else if( is_writable($path . ".htaccess") ) { - $htaccess = apply_filters('wclearfy/cache/htaccess_rules', $htaccess); - - $htaccess = self::insertRewriteRule($htaccess); - $htaccess = self::to_move_gtranslate_rules($htaccess); - - file_put_contents($path . ".htaccess", $htaccess); - } - - return false; - } - - - /** - * Returns the home URL, without WPML filters if the plugin is active - * - * @param string $path Path to add to the home URL. - * - * @return string - */ - public static function get_home_url($path = '') - { - static $home_url = []; - - if( isset($home_url[$path]) ) { - return $home_url[$path]; - } - - $home_url[$path] = home_url($path); - - return $home_url[$path]; - } - - /** - * Get the name of the "home directory", in case the home URL is not at the domain's root. - * It can be seen like the `RewriteBase` from the .htaccess file, but without the trailing slash. - * - * @return string - */ - public static function get_home_dirname() - { - static $home_root; - - if( isset($home_root) ) { - return $home_root; - } - - $home_root = wp_parse_url(self::get_main_home_url()); - - if( !empty($home_root['path']) ) { - $home_root = '/' . trim($home_root['path'], '/'); - $home_root = rtrim($home_root, '/'); - } else { - $home_root = ''; - } - - return $home_root; - } - - /** - * Get the URL of the site's root. It corresponds to the main site's home page URL. - * - * @return string - * @author Grégory Viguier - * - * @since 3.1.1 - */ - public static function get_main_home_url() - { - static $root_url; - - if( isset($root_url) ) { - return $root_url; - } - - if( !is_multisite() || is_main_site() ) { - $root_url = self::get_home_url('/'); - - return $root_url; - } - - $current_network = get_network(); - - if( $current_network ) { - $root_url = set_url_scheme('https://' . $current_network->domain . $current_network->path); - $root_url = trailingslashit($root_url); - } else { - $root_url = self::get_home_url('/'); - } - - return $root_url; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/mobile-cache.php b/wp-content/plugins/!clearfy/components/cache/includes/mobile-cache.php deleted file mode 100644 index 6abca76e..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/mobile-cache.php +++ /dev/null @@ -1,45 +0,0 @@ -wptouch = $status; - } - - public function update_htaccess($data) - { - preg_match("/RewriteEngine\sOn(.+)/is", $data, $out); - $htaccess = "\n##### mobile #####\n"; - $htaccess .= $out[0]; - - if( $this->wptouch ) { - $wptouch_rule = "RewriteCond %{HTTP:Cookie} !wptouch-pro-view=desktop"; - $htaccess = str_replace("RewriteCond %{HTTP:Profile}", $wptouch_rule . "\n" . "RewriteCond %{HTTP:Profile}", $htaccess); - } - - $htaccess = str_replace("RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil", "RewriteCond %{HTTP:Cookie} !safirmobilswitcher=masaustu", $htaccess); - $htaccess = str_replace("RewriteCond %{HTTP_USER_AGENT} !^.*", "RewriteCond %{HTTP_USER_AGENT} ^.*", $htaccess); - $htaccess = preg_replace("/\/cache\/all\//", "/cache/" . $this->get_folder_name() . "/", $htaccess); - - //$htaccess = preg_replace("/(\/cache\/)[^\/]+(\/.{1}1\/index\.html)/","$1".$this->get_folder_name()."$2", $htaccess); - $htaccess .= "\n##### mobile #####\n"; - - return $htaccess; - } - - public function get_folder_name() - { - return $this->folder_name; - } -} - -?> \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/preload.php b/wp-content/plugins/!clearfy/components/cache/includes/preload.php deleted file mode 100644 index 294b9eee..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/preload.php +++ /dev/null @@ -1,504 +0,0 @@ - $value) { - $key = esc_attr($key); - $value = esc_attr($value); - - preg_match("/wpFastestCachePreload_(.+)/", $key, $type); - - if( !empty($type) ) { - if( $type[1] == "restart" ) { - //to need to remove "restart" value - } else if( $type[1] == "number" ) { - $preload_arr[$type[1]] = $value; - } else { - $preload_arr[$type[1]] = 0; - } - } - } - } - - if( $data = get_option("WClearfyCachePreLoad") ) { - $preload_std = json_decode($data); - - if( !empty($preload_arr) ) { - foreach($preload_arr as $key => &$value) { - if( !empty($preload_std->$key) ) { - if( $key != "number" ) { - $value = $preload_std->$key; - } - } - } - - $preload_std = $preload_arr; - } else { - foreach($preload_std as $key => &$value) { - if( $key != "number" ) { - $value = 0; - } - } - } - - update_option("WClearfyCachePreLoad", json_encode($preload_std)); - - if( !wp_next_scheduled($slug . "_Preload") ) { - wp_schedule_event(time() + 5, 'everyfiveminute', $slug . "_Preload"); - } - } else { - if( !empty($preload_arr) ) { - add_option("WClearfyCachePreLoad", json_encode($preload_arr), null, "yes"); - - if( !wp_next_scheduled($slug . "_Preload") ) { - wp_schedule_event(time() + 5, 'everyfiveminute', $slug . "_Preload"); - } - } else { - //toDO - } - } - } - - public static function statistic($pre_load = false) - { - $total = new stdClass(); - - if( isset($pre_load->homepage) ) { - $total->homepage = 1; - } - - if( isset($pre_load->customposttypes) ) { - global $wpdb; - $post_types = get_post_types(array('public' => true), "names", "and"); - $where_query = ""; - - foreach($post_types as $post_type_key => $post_type_value) { - if( !in_array($post_type_key, array("post", "page", "attachment")) ) { - $where_query = $where_query . $wpdb->prefix . "posts.post_type = '" . $post_type_value . "' OR "; - } - } - - if( $where_query ) { - $where_query = preg_replace("/(\s*OR\s*)$/", "", $where_query); - - $recent_custom_posts = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS COUNT(" . $wpdb->prefix . "posts.ID) as total FROM " . $wpdb->prefix . "posts WHERE 1=1 AND (" . $where_query . ") AND ((" . $wpdb->prefix . "posts.post_status = 'publish')) ORDER BY " . $wpdb->prefix . "posts.ID", ARRAY_A); - $total->customposttypes = $recent_custom_posts[0]["total"]; - } - } - - if( isset($pre_load->post) ) { - $count_posts = wp_count_posts("post", array('post_status' => 'publish', 'suppress_filters' => true)); - - $total->post = $count_posts->publish; - } - - if( isset($pre_load->attachment) ) { - $total_attachments = wp_count_attachments(); - - $total->attachment = array_sum((array)$total_attachments) - $total_attachments->trash; - } - - if( isset($pre_load->page) ) { - $count_pages = wp_count_posts("page", array('post_status' => 'publish', 'suppress_filters' => true)); - - $total->page = $count_pages->publish; - } - - if( isset($pre_load->category) ) { - $total->category = wp_count_terms("category", array('hide_empty' => false)); - } - - if( isset($pre_load->tag) ) { - $total->tag = wp_count_terms("post_tag", array('hide_empty' => false)); - } - - if( isset($pre_load->customTaxonomies) ) { - $taxo = get_taxonomies(array('public' => true, '_builtin' => false), "names", "and"); - - if( count($taxo) > 0 ) { - $total->customTaxonomies = wp_count_terms($taxo, array('hide_empty' => false)); - } - } - - foreach($total as $key => $value) { - $pre_load->$key = $pre_load->$key == -1 ? $value : $pre_load->$key; - echo $key . ": " . $pre_load->$key . "/" . $value . "
      "; - } - } - - public static function create_preload_cache($options) - { - if( $data = get_option("WClearfyCachePreLoad") ) { - if( !isset($options->wpFastestCacheStatus) ) { - die("Cache System must be enabled"); - } - - $pre_load = json_decode($data); - - if( defined("WCLEARFY_PRELOAD_NUMBER") && WCLEARFY_PRELOAD_NUMBER ) { - $number = WCLEARFY_PRELOAD_NUMBER; - } else { - $number = $pre_load->number; - } - - $urls_limit = isset($options->wpFastestCachePreload_number) ? $options->wpFastestCachePreload_number : 4; // must be even - $urls = array(); - - if( isset($options->wpFastestCacheMobileTheme) && $options->wpFastestCacheMobileTheme ) { - $mobile_theme = true; - $number = round($number / 2); - } else { - $mobile_theme = false; - } - - // HOME - if( isset($pre_load->homepage) && $pre_load->homepage > -1 ) { - if( $mobile_theme ) { - array_push($urls, array("url" => get_option("home"), "user-agent" => "mobile")); - $number--; - } - - array_push($urls, array("url" => get_option("home"), "user-agent" => "desktop")); - $number--; - - $pre_load->homepage = -1; - } - - // CUSTOM POSTS - if( $number > 0 && isset($pre_load->customposttypes) && $pre_load->customposttypes > -1 ) { - global $wpdb; - $post_types = get_post_types(array('public' => true), "names", "and"); - $where_query = ""; - - foreach($post_types as $post_type_key => $post_type_value) { - if( !in_array($post_type_key, array("post", "page", "attachment")) ) { - $where_query = $where_query . $wpdb->prefix . "posts.post_type = '" . $post_type_value . "' OR "; - } - } - - if( $where_query ) { - $where_query = preg_replace("/(\s*OR\s*)$/", "", $where_query); - - $recent_custom_posts = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS " . $wpdb->prefix . "posts.ID FROM " . $wpdb->prefix . "posts WHERE 1=1 AND (" . $where_query . ") AND ((" . $wpdb->prefix . "posts.post_status = 'publish')) ORDER BY " . $wpdb->prefix . "posts.ID DESC LIMIT " . $pre_load->customposttypes . ", " . $number, ARRAY_A); - - if( count($recent_custom_posts) > 0 ) { - foreach($recent_custom_posts as $key => $post) { - if( $mobile_theme ) { - array_push($urls, array("url" => get_permalink($post["ID"]), "user-agent" => "mobile")); - $number--; - } - - array_push($urls, array("url" => get_permalink($post["ID"]), "user-agent" => "desktop")); - $number--; - - $pre_load->customposttypes = $pre_load->customposttypes + 1; - } - } else { - $pre_load->customposttypes = -1; - } - } - } - - // POST - if( $number > 0 && isset($pre_load->post) && $pre_load->post > -1 ) { - // $recent_posts = wp_get_recent_posts(array( - // 'numberposts' => $number, - // 'offset' => $pre_load->post, - // 'orderby' => 'ID', - // 'order' => 'DESC', - // 'post_type' => 'post', - // 'post_status' => 'publish', - // 'suppress_filters' => true - // ), ARRAY_A); - global $wpdb; - $recent_posts = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS " . $wpdb->prefix . "posts.ID FROM " . $wpdb->prefix . "posts WHERE 1=1 AND (" . $wpdb->prefix . "posts.post_type = 'post') AND ((" . $wpdb->prefix . "posts.post_status = 'publish')) ORDER BY " . $wpdb->prefix . "posts.ID DESC LIMIT " . $pre_load->post . ", " . $number, ARRAY_A); - - if( count($recent_posts) > 0 ) { - foreach($recent_posts as $key => $post) { - if( $mobile_theme ) { - array_push($urls, array("url" => get_permalink($post["ID"]), "user-agent" => "mobile")); - $number--; - } - - array_push($urls, array("url" => get_permalink($post["ID"]), "user-agent" => "desktop")); - $number--; - - $pre_load->post = $pre_load->post + 1; - } - } else { - $pre_load->post = -1; - } - } - - // ATTACHMENT - if( $number > 0 && isset($pre_load->attachment) && $pre_load->attachment > -1 ) { - global $wpdb; - $recent_attachments = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS " . $wpdb->prefix . "posts.ID FROM " . $wpdb->prefix . "posts WHERE 1=1 AND (" . $wpdb->prefix . "posts.post_type = 'attachment') ORDER BY " . $wpdb->prefix . "posts.ID DESC LIMIT " . $pre_load->attachment . ", " . $number, ARRAY_A); - - if( count($recent_attachments) > 0 ) { - foreach($recent_attachments as $key => $attachment) { - if( $mobile_theme ) { - array_push($urls, array( - "url" => get_permalink($attachment["ID"]), - "user-agent" => "mobile" - )); - $number--; - } - - array_push($urls, array("url" => get_permalink($attachment["ID"]), "user-agent" => "desktop")); - $number--; - - $pre_load->attachment = $pre_load->attachment + 1; - } - } else { - $pre_load->attachment = -1; - } - } - - // PAGE - if( $number > 0 && isset($pre_load->page) && $pre_load->page > -1 ) { - - global $wpdb; - $pages = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS " . $wpdb->prefix . "posts.ID FROM " . $wpdb->prefix . "posts WHERE 1=1 AND (" . $wpdb->prefix . "posts.post_type = 'page') AND ((" . $wpdb->prefix . "posts.post_status = 'publish')) ORDER BY " . $wpdb->prefix . "posts.ID DESC LIMIT " . $pre_load->page . ", " . $number, ARRAY_A); - - if( count($pages) > 0 ) { - foreach($pages as $key => $page) { - if( $mobile_theme ) { - array_push($urls, array("url" => get_page_link($page["ID"]), "user-agent" => "mobile")); - $number--; - } - - array_push($urls, array("url" => get_page_link($page["ID"]), "user-agent" => "desktop")); - $number--; - - $pre_load->page = $pre_load->page + 1; - } - } else { - $pre_load->page = -1; - } - } - - // CATEGORY - if( $number > 0 && isset($pre_load->category) && $pre_load->category > -1 ) { - $categories = get_terms(array( - 'taxonomy' => array('category'), - 'orderby' => 'id', - 'order' => 'ASC', - 'hide_empty' => false, - 'number' => $number, - 'fields' => 'all', - 'pad_counts' => false, - 'offset' => $pre_load->category - )); - - if( count($categories) > 0 ) { - foreach($categories as $key => $category) { - if( $mobile_theme ) { - array_push($urls, array( - "url" => get_term_link($category->slug, $category->taxonomy), - "user-agent" => "mobile" - )); - $number--; - } - - array_push($urls, array( - "url" => get_term_link($category->slug, $category->taxonomy), - "user-agent" => "desktop" - )); - $number--; - - $pre_load->category = $pre_load->category + 1; - } - } else { - $pre_load->category = -1; - } - } - - // TAG - if( $number > 0 && isset($pre_load->tag) && $pre_load->tag > -1 ) { - $tags = get_terms(array( - 'taxonomy' => array('post_tag'), - 'orderby' => 'id', - 'order' => 'ASC', - 'hide_empty' => false, - 'number' => $number, - 'fields' => 'all', - 'pad_counts' => false, - 'offset' => $pre_load->tag - )); - - if( count($tags) > 0 ) { - foreach($tags as $key => $tag) { - if( $mobile_theme ) { - array_push($urls, array( - "url" => get_term_link($tag->slug, $tag->taxonomy), - "user-agent" => "mobile" - )); - $number--; - } - - array_push($urls, array( - "url" => get_term_link($tag->slug, $tag->taxonomy), - "user-agent" => "desktop" - )); - $number--; - - $pre_load->tag = $pre_load->tag + 1; - } - } else { - $pre_load->tag = -1; - } - } - - // Custom Taxonomies - if( $number > 0 && isset($pre_load->customTaxonomies) && $pre_load->customTaxonomies > -1 ) { - $taxo = get_taxonomies(array('public' => true, '_builtin' => false), "names", "and"); - - if( count($taxo) > 0 ) { - $custom_taxos = get_terms(array( - 'taxonomy' => array_values($taxo), - 'orderby' => 'id', - 'order' => 'ASC', - 'hide_empty' => false, - 'number' => $number, - 'fields' => 'all', - 'pad_counts' => false, - 'offset' => $pre_load->customTaxonomies - )); - - if( count($custom_taxos) > 0 ) { - foreach($custom_taxos as $key => $custom_tax) { - if( $mobile_theme ) { - array_push($urls, array( - "url" => get_term_link($custom_tax->slug, $custom_tax->taxonomy), - "user-agent" => "mobile" - )); - $number--; - } - - array_push($urls, array( - "url" => get_term_link($custom_tax->slug, $custom_tax->taxonomy), - "user-agent" => "desktop" - )); - $number--; - - $pre_load->customTaxonomies = $pre_load->customTaxonomies + 1; - } - } else { - $pre_load->customTaxonomies = -1; - } - } else { - $pre_load->customTaxonomies = -1; - } - } - - if( count($urls) > 0 ) { - foreach($urls as $key => $arr) { - $user_agent = ""; - - if( $arr["user-agent"] == "desktop" ) { - $user_agent = "Clearfy Cache Preload Bot"; - } else if( $arr["user-agent"] == "mobile" ) { - $user_agent = "Clearfy Cache Preload iPhone Mobile Bot"; - } - - if( self::is_excluded($arr["url"]) ) { - $status = "Excluded"; - } else { - if( $GLOBALS["wp_fastest_cache"]->wclearfy_remote_get($arr["url"], $user_agent) ) { - $status = "OK"; - } else { - $status = "ERROR"; - } - } - - echo $status . " " . $arr["url"] . " (" . $arr["user-agent"] . ")
      "; - } - echo "
      "; - echo count($urls) . " page have been cached"; - - update_option("WClearfyCachePreLoad", json_encode($pre_load)); - - echo "

      "; - - self::statistic($pre_load); - } else { - if( isset($options->wpFastestCachePreload_restart) ) { - foreach($pre_load as $pre_load_key => &$pre_load_value) { - if( $pre_load_key != "number" ) { - $pre_load_value = 0; - } - } - - update_option("WClearfyCachePreLoad", json_encode($pre_load)); - - echo "Preload Restarted"; - - include_once('cdn.php'); - CdnWCLEARFY::cloudflare_clear_cache(); - } else { - echo "Completed"; - - wp_clear_scheduled_hook("wp_fastest_cache_Preload"); - } - } - } - - if( isset($_GET) && isset($_GET["type"]) && $_GET["type"] == "preload" ) { - die(); - } - } - - public static function is_excluded($url) - { - if( !is_string($url) ) { - return false; - } - - $request_url = parse_url($url, PHP_URL_PATH); - $request_url = urldecode(trim($request_url, "/")); - - if( !$request_url ) { - return false; - } - - if( self::$exclude_rules === false ) { - if( $json_data = get_option("WClearfyCacheExclude") ) { - self::$exclude_rules = json_decode($json_data); - } else { - self::$exclude_rules = array(); - } - } - - foreach((array)self::$exclude_rules as $key => $value) { - if( $value->prefix == "exact" ) { - if( strtolower($value->content) == strtolower($request_url) ) { - return true; - } - } else { - if( $value->prefix == "startwith" ) { - $preg_match_rule = "^" . preg_quote($value->content, "/"); - } else if( $value->prefix == "contain" ) { - $preg_match_rule = preg_quote($value->content, "/"); - } - - if( isset($preg_match_rule) ) { - if( preg_match("/" . $preg_match_rule . "/i", $request_url) ) { - return true; - } - } - } - } - - return false; - } -} - -?> \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/single-preload.php b/wp-content/plugins/!clearfy/components/cache/includes/single-preload.php deleted file mode 100644 index 6e97faee..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/single-preload.php +++ /dev/null @@ -1,208 +0,0 @@ -wclearfy_remote_get($_GET["url"], $_GET["user_agent"]); - - if( $res ) { - die("true"); - } - } - - public static function is_mobile_active() - { - if( isset($GLOBALS["wp_fastest_cache_options"]->wpFastestCacheMobile) && isset($GLOBALS["wp_fastest_cache_options"]->wpFastestCacheMobileTheme) ) { - return true; - } else { - return false; - } - } - - public static function set_term_urls($term_taxonomy_id) - { - $term = get_term_by("term_taxonomy_id", $term_taxonomy_id); - - if( $term && !is_wp_error($term) ) { - $url = get_term_link($term->term_id, $term->taxonomy); - - array_push(static::$urls, array("url" => $url, "user-agent" => "Clearfy Cache Preload Bot")); - - if( self::is_mobile_active() ) { - array_push(static::$urls, array( - "url" => $url, - "user-agent" => "Clearfy Cache Preload iPhone Mobile Bot" - )); - } - - if( $term->parent > 0 ) { - $parent = get_term_by("id", $term->parent, $term->taxonomy); - - static::set_term_urls($parent->term_taxonomy_id); - } - } - } - - public static function set_urls_with_terms() - { - global $wpdb; - $terms = $wpdb->get_results("SELECT * FROM `" . $wpdb->prefix . "term_relationships` WHERE `object_id`=" . static::$id, ARRAY_A); - - foreach($terms as $term_key => $term_val) { - static::set_term_urls($term_val["term_taxonomy_id"]); - } - } - - public static function set_urls() - { - if( static::$id ) { - $permalink = get_permalink(static::$id); - - array_push(static::$urls, array("url" => $permalink, "user-agent" => "Clearfy Cache Preload Bot")); - - if( self::is_mobile_active() ) { - array_push(static::$urls, array( - "url" => $permalink, - "user-agent" => "Clearfy Cache Preload iPhone Mobile Bot" - )); - } - } - } - - public static function put_inline_js() - { - $screen = get_current_screen(); - - if( $screen->parent_base == "edit" && $screen->base == "post" ) { - ?> - - \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/todo_cdn.php b/wp-content/plugins/!clearfy/components/cache/includes/todo_cdn.php deleted file mode 100644 index 22a98f72..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/todo_cdn.php +++ /dev/null @@ -1,462 +0,0 @@ - $value) { - if($value->id == "cloudflare"){ - $email = $value->cdnurl; - $key = $value->originurl; - break; - } - } - - if($email && $key){ - $zone = self::cloudflare_get_zone_id($email, $key, false); - - if($zone["success"]){ - $zoneid = $zone["zoneid"]; - } - } - } - } - - if($email && $key && $zoneid){ - $header = array("method" => "DELETE", - 'headers' => array( - "X-Auth-Email" => $email, - "X-Auth-Key" => $key, - "Content-Type" => "application/json" - ), - "body" => '{"purge_everything":true}' - ); - - $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/purge_cache', $header); - } - } - - public static function cloudflare_disable_rocket_loader($email = false, $key = false, $zoneid = false){ - if($email && $key && $zoneid){ - $header = array("method" => "PATCH", - 'timeout' => 10, - 'headers' => array( - "X-Auth-Email" => $email, - "X-Auth-Key" => $key, - "Content-Type" => "application/json" - ), - 'body' => '{"value":"off"}' - ); - - $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/rocket_loader', $header); - - if(!$response || is_wp_error($response)){ - return array("success" => false, "error_message" => "Unable to disable rocket loader option"); - }else{ - $body = json_decode(wp_remote_retrieve_body($response)); - - if($body->success){ - return array("success" => true); - }else if(isset($body->errors) && isset($body->errors[0])){ - return array("success" => false, "error_message" => $body->errors[0]->message); - }else{ - return array("success" => false, "error_message" => "Unknown error: 101"); - } - } - - return array("success" => false, "error_message" => "Unknown error"); - } - } - - - public static function cloudflare_set_browser_caching($email = false, $key = false, $zoneid = false){ - if($email && $key && $zoneid){ - $header = array("method" => "PATCH", - 'timeout' => 10, - 'headers' => array( - "X-Auth-Email" => $email, - "X-Auth-Key" => $key, - "Content-Type" => "application/json" - ), - 'body' => '{"value":16070400}' - ); - - $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/browser_cache_ttl', $header); - - if(!$response || is_wp_error($response)){ - return array("success" => false, "error_message" => "Unable to set the browser caching option"); - }else{ - $body = json_decode(wp_remote_retrieve_body($response)); - - if($body->success){ - return array("success" => true); - }else if(isset($body->errors) && isset($body->errors[0])){ - return array("success" => false, "error_message" => $body->errors[0]->message); - }else{ - return array("success" => false, "error_message" => "Unknown error: 101"); - } - } - - return array("success" => false, "error_message" => "Unknown error"); - } - } - - public static function cloudflare_disable_minify($email = false, $key = false, $zoneid = false){ - if($email && $key && $zoneid){ - $header = array("method" => "PATCH", - 'timeout' => 10, - 'headers' => array( - "X-Auth-Email" => $email, - "X-Auth-Key" => $key, - "Content-Type" => "application/json" - ), - 'body' => '{"value":{"css":"off","html":"off","js":"off"}}' - ); - - $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/minify', $header); - - if(!$response || is_wp_error($response)){ - return array("success" => false, "error_message" => "Unable to disable minify options"); - }else{ - $body = json_decode(wp_remote_retrieve_body($response)); - - if($body->success){ - return array("success" => true); - }else if(isset($body->errors) && isset($body->errors[0])){ - return array("success" => false, "error_message" => $body->errors[0]->message); - }else{ - return array("success" => false, "error_message" => "Unknown error: 101"); - } - } - - return array("success" => false, "error_message" => "Unknown error"); - }else{ - wp_die("bad request"); - } - } - - public static function cloudflare_get_zone_id($email = false, $key = false){ - $hostname = preg_replace("/^(https?\:\/\/)?(www\d*\.)?/", "", $_SERVER["HTTP_HOST"]); - - if(function_exists("idn_to_utf8")){ - $hostname = idn_to_utf8($hostname); - } - - $header = array("method" => "GET", - 'headers' => array( - "X-Auth-Email" => $email, - "X-Auth-Key" => $key, - "Content-Type" => "application/json" - ), - ); - - /* - status=active has been removed because status may be "pending" - */ - $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/?page=1&per_page=1000', $header); - - if(!$response || is_wp_error($response)){ - $res = array("success" => false, "error_message" => $response->get_error_message()); - }else{ - $zone = json_decode(wp_remote_retrieve_body($response)); - - if(isset($zone->errors) && isset($zone->errors[0])){ - $res = array("success" => false, "error_message" => $zone->errors[0]->message); - }else{ - if(isset($zone->result) && isset($zone->result[0])){ - foreach ($zone->result as $zone_key => $zone_value) { - if(preg_match("/".$zone_value->name."/", $hostname)){ - $res = array("success" => true, - "zoneid" => $zone_value->id, - "plan" => $zone_value->plan->legacy_id); - } - } - - if(!$res["success"]){ - $res = array("success" => false, "error_message" => "No zone name ".$hostname); - } - }else{ - $res = array("success" => false, "error_message" => "There is no zone"); - } - } - } - - return $res; - } - - public static function cloudflare_remove_webp(){ - $path = ABSPATH.".htaccess"; - - if(file_exists($path)){ - if(is_writable($path)){ - $htaccess = file_get_contents($path); - $htaccess = preg_replace("/#\s?BEGIN\s?WEBPWClearfyCache.*?#\s?END\s?WEBPWClearfyCache/s", "", $htaccess); - - file_put_contents($path, $htaccess); - } - } - } - - - public static function cloudflare_change_settings(){ - //admin OR author OR editor - if(current_user_can('manage_options') || current_user_can('delete_published_posts') || current_user_can('edit_published_posts')){ - if(isset($_GET["url"]) && isset($_GET["origin_url"])){ - $email = $_GET["url"]; - $key = $_GET["origin_url"]; - } - - $zone = CdnWCLEARFY::cloudflare_get_zone_id($email, $key); - - if($zone["success"]){ - - $minify = CdnWCLEARFY::cloudflare_disable_minify($email, $key, $zone["zoneid"]); - $rocket_loader = CdnWCLEARFY::cloudflare_disable_rocket_loader($email, $key, $zone["zoneid"]); - $purge_cache = CdnWCLEARFY::cloudflare_clear_cache($email, $key, $zone["zoneid"]); - $browser_caching = CdnWCLEARFY::cloudflare_set_browser_caching($email, $key, $zone["zoneid"]); - - if($zone["plan"] == "free"){ - CdnWCLEARFY::cloudflare_remove_webp();; - } - - - if($minify["success"]){ - if($rocket_loader["success"]){ - if($browser_caching["success"]){ - $res = array("success" => true); - }else{ - $res = array("success" => false, "error_message" => $browser_caching["error_message"]); - } - }else{ - $res = array("success" => false, "error_message" => $rocket_loader["error_message"]); - } - }else{ - $res = array("success" => false, "error_message" => $minify["error_message"]); - } - }else{ - $res = $zone; - } - - wp_send_json($res); - }else{ - wp_die("Must be admin"); - } - } - - public static function check_url(){ - if(current_user_can('manage_options')){ - if(isset($_GET["type"]) && $_GET["type"] == "cloudflare"){ - CdnWCLEARFY::cloudflare_change_settings(); - } - - if(preg_match("/wp\.com/", $_GET["url"]) || $_GET["url"] == "random"){ - wp_send_json(array("success" => true)); - } - - $host = str_replace("www.", "", $_SERVER["HTTP_HOST"]); - $_GET["url"] = esc_url_raw($_GET["url"]); - - if(!preg_match("/^http/", $_GET["url"])){ - $_GET["url"] = "http://".$_GET["url"]; - } - - if(preg_match("/^https/i", site_url()) && preg_match("/^https/i", home_url())){ - $_GET["url"] = preg_replace("/http\:\/\//i", "https://", $_GET["url"]); - } - - $response = wp_remote_get($_GET["url"], array('timeout' => 20, 'user-agent' => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:64.0) Gecko/20100101 Firefox/64.0")); - - $header = wp_remote_retrieve_headers($response); - - if ( !$response || is_wp_error( $response ) ) { - $res = array("success" => false, "error_message" => $response->get_error_message()); - - if($response->get_error_code() == "http_request_failed"){ - if($response->get_error_message() == "Failure when receiving data from the peer"){ - $res = array("success" => true); - }else if(preg_match("/cURL\serror\s60/i", $response->get_error_message())){ - //cURL error 60: SSL: no alternative certificate subject name matches target host name - $res = array("success" => false, "error_message" => "Please Read: https://www.wpfastestcache.com/warnings/how-to-use-cdn-on-ssl-sites/"); - }else if(preg_match("/cURL\serror\s6/i", $response->get_error_message())){ - //cURL error 6: Couldn't resolve host - if(preg_match("/".preg_quote($host, "/")."/i", $_GET["url"])){ - $res = array("success" => true); - } - } - } - }else{ - $response_code = wp_remote_retrieve_response_code( $response ); - if($response_code == 200){ - $res = array("success" => true); - }else{ - if(method_exists($response, "get_error_message")){ - $res = array("success" => false, "error_message" => $response->get_error_message()); - }else{ - $res = array("success" => false, "error_message" => wp_remote_retrieve_response_message($response)); - } - - if(isset($header["server"]) && preg_match("/squid/i", $header["server"])){ - $res = array("success" => true); - } - - if(($response_code == 401) && (preg_match("/res\.cloudinary\.com/i", $_GET["url"]))){ - $res = array("success" => true); - } - - if(($response_code == 403) && (preg_match("/stackpathdns\.com/i", $_GET["url"]))){ - $res = array("success" => true); - } - - if(($response_code == 403) && (preg_match("/cloudfront\.net/i", $_GET["url"]))){ - $res = array("success" => false, "error_message" => "Please Read: https://www.wpfastestcache.com/warnings/amazon-s3-cloudfront-access-denied-403-forbidden"); - } - } - } - - wp_send_json($res); - }else{ - wp_die("Must be admin"); - } - } - - public static function cdn_options(){ - if(current_user_can('manage_options')){ - $cdn_values = get_option("WClearfyCacheCDN"); - if($cdn_values){ - echo $cdn_values; - }else{ - echo json_encode(array("success" => false)); - } - exit; - }else{ - wp_die("Must be admin"); - } - } - - public static function remove_cdn_integration(){ - if(current_user_can('manage_options')){ - $cdn_values = get_option("WClearfyCacheCDN"); - - if($cdn_values){ - $std_obj = json_decode($cdn_values); - $cdn_values_arr = array(); - - if(is_array($std_obj)){ - $cdn_values_arr = $std_obj; - }else{ - array_push($cdn_values_arr, $std_obj); - } - - foreach ($cdn_values_arr as $cdn_key => $cdn_value) { - if($cdn_value->id == "amazonaws" || $cdn_value->id == "keycdn" || $cdn_value->id == "cdn77"){ - $cdn_value->id = "other"; - } - - if($cdn_value->id == $_POST["id"]){ - unset($cdn_values_arr[$cdn_key]); - } - } - - $cdn_values_arr = array_values($cdn_values_arr); - } - - if(count($cdn_values_arr) > 0){ - update_option("WClearfyCacheCDN", json_encode($cdn_values_arr)); - }else{ - delete_option("WClearfyCacheCDN"); - } - - echo json_encode(array("success" => true)); - exit; - }else{ - wp_die("Must be admin"); - } - } - - public static function cdn_template(){ - if(current_user_can('manage_options')){ - if($_POST["id"] == "maxcdn"){ - $path = WCLEARFY_MAIN_PATH."templates/cdn/maxcdn.php"; - }else if($_POST["id"] == "other"){ - $path = WCLEARFY_MAIN_PATH."templates/cdn/other.php"; - }else if($_POST["id"] == "photon"){ - $path = WCLEARFY_MAIN_PATH."templates/cdn/photon.php"; - }else if($_POST["id"] == "cloudflare"){ - $path = WCLEARFY_MAIN_PATH."templates/cdn/cloudflare.php"; - }else{ - die("Wrong cdn"); - } - - - ob_start(); - include_once($path); - $content = ob_get_contents(); - ob_end_clean(); - - $res = array("success" => false, "content" => ""); - - if($data = @file_get_contents($path)){ - $res["success"] = true; - $res["content"] = $content; - } - - echo json_encode($res); - exit; - }else{ - wp_die("Must be admin"); - } - } - - public static function save_cdn_integration(){ - if(current_user_can('manage_options')){ - if(isset($_POST) && isset($_POST["values"])){ - foreach ($_POST["values"] as $val_key => &$val_value) { - $val_value = sanitize_text_field($val_value); - } - } - - if($data = get_option("WClearfyCacheCDN")){ - $cdn_exist = false; - $arr = json_decode($data); - - if(is_array($arr)){ - foreach ($arr as $cdn_key => &$cdn_value) { - if($cdn_value->id == $_POST["values"]["id"]){ - $cdn_value = $_POST["values"]; - $cdn_exist = true; - } - } - - if(!$cdn_exist){ - array_push($arr, $_POST["values"]); - } - - update_option("WClearfyCacheCDN", json_encode($arr)); - }else{ - $tmp_arr = array(); - - if($arr->id == $_POST["values"]["id"]){ - array_push($tmp_arr, $_POST["values"]); - }else{ - array_push($tmp_arr, $arr); - array_push($tmp_arr, $_POST["values"]); - } - - update_option("WClearfyCacheCDN", json_encode($tmp_arr)); - } - }else{ - $arr = array(); - array_push($arr, $_POST["values"]); - - add_option("WClearfyCacheCDN", json_encode($arr), null, "yes"); - } - echo json_encode(array("success" => true)); - exit; - }else{ - wp_die("Must be admin"); - } - } - - } -?> \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cache/includes/widget-cache.php b/wp-content/plugins/!clearfy/components/cache/includes/widget-cache.php deleted file mode 100644 index 233a2029..00000000 --- a/wp-content/plugins/!clearfy/components/cache/includes/widget-cache.php +++ /dev/null @@ -1,160 +0,0 @@ - -

      - /> - -

      - widget($args, $instance); - $cached_widget = ob_get_clean(); - - //to create cache - if( $cached_widget ) { - if( !is_dir(WCL_Cache_Helpers::getWpContentDir("/cache/wclearfy-widget-cache")) ) { - if( @mkdir(WCL_Cache_Helpers::getWpContentDir("/cache/wclearfy-widget-cache"), 0755, true) ) { - $create_cache = true; - } - } else { - $create_cache = true; - } - - //to exclude the widgets which contains nonce value - // - if( preg_match("/]+hidden[^\>]+nonce[^\>]+>/", $cached_widget) || preg_match("/]+nonce[^\>]+hidden[^\>]+>/", $cached_widget) ) { - $create_cache = false; - } - - if( $create_cache ) { - @file_put_contents($path, $cached_widget); - } - } - - echo $cached_widget; - - return false; - } -} - -?> \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/admin/boot.php b/wp-content/plugins/!clearfy/components/comments-plus/admin/boot.php deleted file mode 100644 index 340f6f40..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/admin/boot.php +++ /dev/null @@ -1,178 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright Webcraftic 25.05.2017 - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Массово проходится по комментарием в базе данных и отключает, какждый индивидуально. - */ -function wbcr_cmp_enter_permanent_mode() { - global $wpdb; - - if ( ! WCM_Plugin::app()->getPopulateOption( 'disable_comments_permanent' ) ) { - return; - } - - $types = wbcr_cmp_get_disabled_post_types(); - - if ( empty( $types ) ) { - return; - } - - if ( WCM_Plugin::app()->isNetworkActive() ) { - // NOTE: this can be slow on large networks! - $blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id - FROM $wpdb->blogs - WHERE site_id = %d - AND public = '1' - AND archived = '0' - AND deleted = '0'", $wpdb->siteid ) ); - - foreach ( $blogs as $id ) { - switch_to_blog( $id ); - wbcr_close_comments_in_db( $types ); - restore_current_blog(); - } - } else { - wbcr_close_comments_in_db( $types ); - } -} - -add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_cmp_enter_permanent_mode' ); -add_action( 'wbcr_clearfy_configurated_quick_mode', 'wbcr_cmp_enter_permanent_mode' ); - -/** - * Закрывает комментарии в базе данных - * - * @param $types - */ -function wbcr_close_comments_in_db( $types ) { - global $wpdb; - $bits = implode( ', ', array_pad( [], count( $types ), '%s' ) ); - - $wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->posts` - SET `comment_status` = 'closed', ping_status = 'closed' - WHERE `post_type` - IN ( $bits )", $types ) ); -} - -if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) { - function wbcr_cmp_set_plugin_meta( $links, $file ) { - if ( $file == WCM_PLUGIN_BASE ) { - - $url = 'https://clearfy.pro'; - - if ( get_locale() == 'ru_RU' ) { - $url = 'https://ru.clearfy.pro'; - } - - $url .= '?utm_source=wordpress.org&utm_campaign=' . WCM_Plugin::app()->getPluginName(); - - $links[] = '' . __( 'Get ultimate plugin free', 'comments-plus' ) . ''; - } - - return $links; - } - - add_filter( 'plugin_row_meta', 'wbcr_cmp_set_plugin_meta', 10, 2 ); - - /** - * @author Alexander Kovalev - * - * @param string $page_url - * @param string $plugin_name - * - * @return string - */ - function wbcr_cmp_rating_widget_url( $page_url, $plugin_name ) { - if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) && ( $plugin_name == WCM_Plugin::app()->getPluginName() ) ) { - return 'https://goo.gl/v4QkW5'; - } - - return $page_url; - } - - add_filter( 'wbcr_factory_pages_480_imppage_rating_widget_url', 'wbcr_cmp_rating_widget_url', 10, 2 ); - - /** - * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина - * - * - Виджет с премиум рекламой - * - Виджет с рейтингом - * - Виджет с маркерами информации - */ - add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) { - if ( WCM_Plugin::app()->getPluginName() == $plugin->getPluginName() && 'right' == $position ) { - unset( $widgets['business_suggetion'] ); - unset( $widgets['rating_widget'] ); - unset( $widgets['info_widget'] ); - } - - return $widgets; - }, 20, 3 ); -} else { - - function wbcr_cmp_group_options( $options ) { - $options[] = [ - 'name' => 'disable_comments', - 'title' => __( 'Disable comments on the entire site', 'comments-plus' ), - 'tags' => [ 'disable_all_comments' ], - 'values' => [ 'disable_all_comments' => 'disable_comments' ] - ]; - $options[] = [ - 'name' => 'disable_comments_for_post_types', - 'title' => __( 'Select post types', 'comments-plus' ), - 'tags' => [] - ]; - $options[] = [ - 'name' => 'disable_comments_extra_post_types', - 'title' => __( 'Custom post types', 'comments-plus' ), - 'tags' => [] - ]; - $options[] = [ - 'name' => 'disable_comments_permanent', - 'title' => __( 'Use persistent mode', 'comments-plus' ), - 'tags' => [] - ]; - $options[] = [ - 'name' => 'comment_text_convert_links_pseudo', - 'title' => __( 'Replace external links in comments on the JavaScript code', 'comments-plus' ), - 'tags' => [ 'recommended', 'seo_optimize' ] - ]; - $options[] = [ - 'name' => 'pseudo_comment_author_link', - 'title' => __( 'Replace external links from comment authors on the JavaScript code', 'comments-plus' ), - 'tags' => [ 'recommended', 'seo_optimize' ] - ]; - $options[] = [ - 'name' => 'remove_url_from_comment_form', - 'title' => __( 'Remove field "site" in comment form', 'comments-plus' ), - 'tags' => [] - ]; - - return $options; - } - - add_filter( "wbcr_clearfy_group_options", 'wbcr_cmp_group_options' ); - - function wbcr_cmp_allow_quick_mods( $mods ) { - $mods['disable_all_comments'] = [ - 'title' => __( 'One click disable all comments', 'comments-plus' ), - 'icon' => 'dashicons-testimonial' - ]; - - return $mods; - } - - add_filter( "wbcr_clearfy_allow_quick_mods", 'wbcr_cmp_allow_quick_mods' ); -} - diff --git a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-comments.php b/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-comments.php deleted file mode 100644 index 5842e827..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-comments.php +++ /dev/null @@ -1,233 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WbcrCmp_CommentsPage extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "comments"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-testimonial'; - - /** - * {@inheritDoc} - * - * @var bool - */ - public $available_for_multisite = true; - - /** - * {@inheritDoc} - * - * @since 1.1.0 - * @var bool - */ - public $show_right_sidebar_in_options = true; - - /** - * WbcrCmp_CommentsPage constructor. - * - * @author Alexander Kovalev - * - * @param \Wbcr_Factory480_Plugin $plugin - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'Disable comments', 'comments-plus' ); - $this->page_menu_short_description = __( 'Manage site comments', 'comments-plus' ); - - if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) { - $this->internal = false; - $this->menu_target = 'options-general.php'; - $this->add_link_to_plugin_actions = true; - $this->show_search_options_form = false; - } - - parent::__construct( $plugin ); - } - - /*public function getMenuTitle() { - return defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ? __( 'Comments', 'comments-plus' ) : __( 'General', 'comments-plus' ); - }*/ - - /** - * {@inheritDoc} - * - * @author Alexander Kovalev - * @return string - */ - public function getPageTitle() { - return defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ? __( 'Comments', 'comments-plus' ) : __( 'General', 'comments-plus' ); - } - - /** - * {@inheritDoc} - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() { - $options = []; - - $options[] = [ - 'type' => 'html', - 'html' => '
      ' . __( 'Global disabling of comments', 'comments-plus' ) . '

      ' . __( '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' ) . '

      ' - ]; - - $args = [ 'public' => true ]; - - if ( $this->plugin->isNetworkActive() ) { - $args['_builtin'] = true; - } - - $types = get_post_types( $args, 'objects' ); - - /*foreach( array_keys( $types ) as $type ) { - if( ! in_array( $type, $this->modified_types ) && ! post_type_supports( $type, 'comments' ) ) // the type doesn't support comments anyway - unset( $types[$type] ); - }*/ - - $post_types = []; - foreach ( $types as $type_name => $type ) { - $post_types[] = [ $type_name, $type->label ]; - } - - $options[] = [ - 'type' => 'dropdown', - 'name' => 'disable_comments', - 'way' => 'buttons', - 'title' => __( 'Disable comments', 'comments-plus' ), - 'data' => [ - [ 'enable_comments', __( 'Not disable', 'comments-plus' ) ], - [ - 'disable_comments', - __( 'Everywhere', 'comments-plus' ), - sprintf( __( 'You can delete all comments in the database by clicking on this link (cleaning comments in database).', 'comments-plus' ), admin_url( 'admin.php?page=delete_comments-' . $this->plugin->getPluginName() ) ) - ], - [ - 'disable_certain_post_types_comments', - __( 'On certain post types', 'comments-plus' ), - 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 (delete all comments for the selected post types in database).', 'comments-plus' ), admin_url( 'admin.php?page=delete_comments-' . $this->plugin->getPluginName() ) ) - ] - ], - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - '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' ) . '

      ' . __( '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' ), - 'default' => 'enable_comments', - 'events' => [ - 'disable_certain_post_types_comments' => [ - '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' - ], - 'enable_comments' => [ - 'show' => '#wbcr-clearfy-comments-base-options', - 'hide' => '.factory-control-disable_comments_for_post_types,.factory-control-disable_comments_permanent,.factory-control-disable_comments_extra_post_types' - ], - 'disable_comments' => [ - 'show' => '.factory-control-disable_comments_permanent', - 'hide' => '.factory-control-disable_comments_for_post_types, #wbcr-clearfy-comments-base-options,.factory-control-disable_comments_extra_post_types' - ] - ] - ]; - - $options[] = [ - 'type' => 'list', - 'way' => 'checklist', - 'name' => 'disable_comments_for_post_types', - 'title' => __( 'Select post types', 'comments-plus' ), - 'data' => $post_types, - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'Select the post types for which comments will be disabled', 'comments-plus' ), - 'default' => 'post,page,attachment' - ]; - - if ( $this->plugin->isNetworkActive() ) { - $options[] = [ - 'type' => 'textbox', - 'name' => 'disable_comments_extra_post_types', - 'title' => __( 'Custom post types', 'comments-plus' ), - 'data' => $post_types, - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - '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' ), - 'default' => '' - ]; - } - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_comments_permanent', - 'title' => __( 'Use persistent mode', 'comments-plus' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - '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' ), - 'default' => false - ]; - - $options[] = [ - 'type' => 'div', - 'id' => 'wbcr-clearfy-comments-base-options', - 'items' => [ - [ - 'type' => 'html', - 'html' => '
      ' . __( 'General settings for comments', 'comments-plus' ) . '

      ' . __( 'These settings will help you improve SEO and reduce the amount of spam.', 'comments-plus' ) . '

      ' - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'remove_url_from_comment_form', - 'title' => __( 'Remove field "site" in comment form', 'comments-plus' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'Tired of spam in the comments? Do visitors leave "blank" comments for the sake of a link to their site?', 'comments-plus' ) . '
      Clearfy: ' . __( 'Removes the "Site" field from the comment form.', 'comments-plus' ) . '
      --
      *' . __( 'Works with the standard comment form, if the form is manually written in your theme-it probably will not work!', 'comments-plus' ) . '', - 'default' => false - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'comment_text_convert_links_pseudo', - 'title' => __( 'Replace external links in comments on the JavaScript code', 'comments-plus' ), - 'layout' => [ 'hint-type' => 'icon' ], - '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' ) . '

      Clearfy: ' . sprintf( __( 'Replaces the links of this kind of %s, on links of this kind %s', 'comments-plus' ), 'a href="http://yourdomain.com" rel="nofollow"', 'span data-uri="http://yourdomain.com"' ), - 'default' => false - ], - [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'pseudo_comment_author_link', - 'title' => __( 'Replace external links from comment authors on the JavaScript code', 'comments-plus' ), - 'layout' => [ 'hint-type' => 'icon' ], - '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' ) . '

      Clearfy: ' . __( 'Replaces the links of the authors of comments on the JavaScript code, it is impossible to distinguish it from usual links.', 'comments-plus' ) . '
      --
      ' . __( 'In some Wordpress topics this may not work.', 'comments-plus' ) . '', - 'default' => false - ] - ] - ]; - - $formOptions = []; - - $formOptions[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters( 'wbcr_cmp_comments_form_options', $formOptions ); - } -} diff --git a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-delete-comments.php b/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-delete-comments.php deleted file mode 100644 index fd9ecf16..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-delete-comments.php +++ /dev/null @@ -1,513 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WbcrCmp_DeleteCommentsPage extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "delete_comments"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $type = "page"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_parent_page = "comments"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-testimonial'; - - /** - * {@inheritDoc} - * - * @var bool - */ - public $available_for_multisite = true; - - /** - * {@inheritDoc} - * - * @since 1.1.0 - * @var bool - */ - public $show_right_sidebar_in_options = true; - - /** - * WbcrCmp_DeleteCommentsPage constructor. - * - * @author Alexander Kovalev - * - * @param \Wbcr_Factory480_Plugin $plugin - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'Comments cleaner', 'comments-plus' ); - - parent::__construct( $plugin ); - } - - /** - * {@inheritDoc} - * - * @param $notices - * @param Wbcr_Factory480_Plugin $plugin - * - * @return array - * @see libs\factory\pages\themplates\FactoryPages480_ImpressiveThemplate - */ - public function getActionNotices( $notices ) { - - $notices[] = [ - 'conditions' => [ - 'wbcr_cmp_clear_comments' => 1 - ], - 'type' => 'success', - 'message' => __( 'All comments have been deleted.', 'comments-plus' ) - ]; - - $notices[] = [ - 'conditions' => [ - 'wbcr_cmp_clear_comments_error' => 1, - 'wbcr_cmp_code' => 'interal_error' - ], - 'type' => 'danger', - 'message' => __( 'An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'comments-plus' ) - ]; - - return $notices; - } - - public function getStats() { - if ( WCM_Plugin::app()->isNetworkActive() ) { - $stats = $this->getMultisiteStats(); - } else { - $stats = $this->getSiteStats(); - } - - return $stats; - } - - public function getMultisiteStats() { - $stats = []; - foreach ( WCM_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - $site_stats = $this->getSiteStats(); - $stats = $this->mergeStats( $stats, $site_stats ); - restore_current_blog(); - } - - return $stats; - } - - public function mergeStats( $current_stats, $new_stats ) { - if ( ! isset( $current_stats['stat_data'] ) ) { - $current_stats['stat_data'] = $new_stats['stat_data']; - } else { - $comment_fields = [ 'total_comments', 'order_notes_count', 'spamcount', 'unpcount', 'trashcount' ]; - foreach ( $comment_fields as $comment_field ) { - if ( is_null( $current_stats['stat_data'][0]->$comment_field ) ) { - $current_stats['stat_data'][0]->$comment_field = 0; - } - if ( is_null( $new_stats['stat_data'][0]->$comment_field ) ) { - $new_stats['stat_data'][0]->$comment_field = 0; - } - if ( $new_stats['stat_data'][0]->$comment_field ) { - $current_stats['stat_data'][0]->$comment_field = $current_stats['stat_data'][0]->$comment_field + $new_stats['stat_data'][0]->$comment_field; - } - } - } - - if ( ! isset( $current_stats['post_types'] ) ) { - $current_stats['post_types'] = $new_stats['post_types']; - } else { - foreach ( $new_stats['post_types'] as $post_type_key => $post_type ) { - if ( array_key_exists( $post_type_key, $current_stats['post_types'] ) ) { - $current_stats['post_types'][ $post_type_key ]['comments_count'] += $new_stats['post_types'][ $post_type_key ]['comments_count']; - } else { - $current_stats['post_types'][ $post_type_key ] = $new_stats['post_types'][ $post_type_key ]; - } - } - } - - return $current_stats; - } - - - public function getSiteStats() { - global $wpdb; - $stat_data = $wpdb->get_results( "SELECT count(*) as total_comments, - SUM(comment_type='order_note') as order_notes_count, - SUM(comment_approved='spam') as spamcount, - SUM(comment_approved='0') as unpcount, - SUM(comment_approved='trash') as trashcount - FROM {$wpdb->prefix}comments" ); - - $stat_data_by_post_type = $wpdb->get_results( "SELECT - SUM(comment_count) as type_comments_count, post_type - FROM $wpdb->posts - GROUP BY post_type" ); - - $types = get_post_types( [ 'public' => true ], 'objects' ); - - $post_types = []; - foreach ( (array) $types as $type_name => $type ) { - $comments_count = 0; - if ( ! empty( $stat_data_by_post_type ) ) { - foreach ( (array) $stat_data_by_post_type as $post_type_stat_value ) { - if ( $post_type_stat_value->post_type == $type_name ) { - $comments_count = $post_type_stat_value->type_comments_count; - } - } - } - - $post_types[ $type_name ] = [ 'label' => $type->label, 'comments_count' => $comments_count ]; - } - - return [ - 'stat_data' => $stat_data, - 'post_types' => $post_types - ]; - } - - /** - * Prints the content of the page - * - * @see libs\factory\pages\themplates\FactoryPages480_ImpressiveThemplate - */ - public function showPageContent() { - $stats = $this->getStats(); - $stat_data = $stats['stat_data']; - $post_types = $stats['post_types']; - - ?> - -
      - -

      - -

      -
      - -
      -

      -

      -

      -

      - -

      - $type ): ?> -

      - -

      - -
      - -

      - -

      - -

      - -

      - getResultId() . '_delete_all_comments' ) ?> - - - request->post( 'wbcr_cmp_delete_order_notes', false, 'intval' ); - - if ( $wpdb->query( "TRUNCATE $wpdb->commentmeta" ) != false ) { - $delete_all_sql = "TRUNCATE $wpdb->comments"; - if ( class_exists( 'WooCommerce' ) ) { - if ( ! $delete_order_notes ) { - $delete_all_sql = "DELETE FROM $wpdb->comments WHERE comment_type != 'order_note'"; - } - } - if ( $wpdb->query( $delete_all_sql ) != false ) { - $wpdb->query( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0" ); - $wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" ); - $wpdb->query( "OPTIMIZE TABLE $wpdb->comments" ); - - return true; - } - } - - return false; - } - - /** - * @param string $post_type - * - * @return bool - */ - protected function deleteCommentsByPostType( $post_type = 'post' ) { - global $wpdb; - - $delete_order_notes = $this->request->post( 'wbcr_cmp_delete_order_notes', false, 'intval' ); - - $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'" ); - - $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'"; - - if ( class_exists( 'WooCommerce' ) ) { - if ( ! $delete_order_notes ) { - $delete_certain_sql .= " and comment_type != 'order_note'"; - } - } - - $wpdb->query( $wpdb->prepare( $delete_certain_sql, $post_type ) ); - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '%s'", $post_type ) ); - - return true; - } - - /** - * @param $post_types - * - * @return bool - */ - protected function deleteCommentsByPostTypes( $post_types ) { - global $wpdb; - - if ( empty( $post_types ) || ! is_array( $post_types ) ) { - return false; - } - - foreach ( $post_types as $post_type ) { - $this->deleteCommentsByPostType( $post_type ); - } - - $wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" ); - $wpdb->query( "OPTIMIZE TABLE $wpdb->comments" ); - - return true; - } - - /** - * This action deletes all comments from the database without restoring. - */ - public function deleteAllCommentsAction() { - check_admin_referer( $this->getResultId() . '_delete_all_comments' ); - - if ( isset( $_POST['wbcr_cmp_delete_all'] ) ) { - $post_types = $this->request->post( 'wbcr_cmp_post_type', [], true ); - - $result = false; - - if ( empty( $post_types ) || in_array( 'all', $post_types ) ) { - if ( WCM_Plugin::app()->isNetworkActive() ) { - foreach ( WCM_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - $result = $this->deleteAllComments(); - restore_current_blog(); - } - } else { - $result = $this->deleteAllComments(); - } - } else { - if ( WCM_Plugin::app()->isNetworkActive() ) { - foreach ( WCM_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - $result = $this->deleteCommentsByPostTypes( $post_types ); - restore_current_blog(); - } - } else { - $result = $this->deleteCommentsByPostTypes( $post_types ); - } - } - - if ( $result ) { - $this->redirectToAction( 'index', [ - 'wbcr_cmp_clear_comments' => '1' - ] ); - } else { - $this->redirectToAction( 'index', [ - 'wbcr_cmp_clear_comments_error' => '1', - 'wbcr_cmp_code' => 'interal_error', - ] ); - } - } - - $this->redirectToAction( 'index' ); - } - - /** - * The basic function of deleting comments. - * - * @param int|string $type - */ - public function deleteComments( $type = 0 ) { - if ( in_array( $type, [ 'spam', 'trash', 0 ] ) ) { - - if ( WCM_Plugin::app()->isNetworkActive() ) { - foreach ( WCM_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - $this->deleteCommentsByType( $type ); - restore_current_blog(); - } - } else { - $this->deleteCommentsByType( $type ); - } - - $this->redirectToAction( 'index', [ - 'wbcr_cmp_clear_comments' => '1' - ] ); - } - } - - /** - * @param int $type - * - * @return false|int - */ - private function deleteCommentsByType( $type = 0 ) { - global $wpdb; - - $wpdb->query( "DELETE cmeta - FROM $wpdb->commentmeta cmeta - INNER JOIN {$wpdb->comments} comments ON cmeta.comment_id=comments.comment_ID - WHERE comment_approved='{$type}'" ); - - $res = $wpdb->query( "DELETE FROM {$wpdb->comments} WHERE comment_approved='{$type}'" ); - - if ( $res ) { - $wpdb->query( "OPTIMIZE TABLE {$wpdb->comments}" ); - $wpdb->query( "OPTIMIZE TABLE {$wpdb->commentmeta}" ); - } - - return $res; - } - - /** - * This action deletes spam comments - */ - public function deleteSpamCommentsAction() { - check_admin_referer( $this->getResultId() . '_delete_spam_comments' ); - - $this->deleteComments( 'spam' ); - } - - /** - * This action deletes unaproved comments - */ - public function deleteUnaprovedCommentsAction() { - check_admin_referer( $this->getResultId() . '_delete_unaproved_comments' ); - - $this->deleteComments(); - } - - /** - * This action deletes trash comments - */ - public function deleteTrashCommentsAction() { - check_admin_referer( $this->getResultId() . '_delete_trash_comments' ); - - $this->deleteComments( 'trash' ); - } -} diff --git a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-more-features.php b/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-more-features.php deleted file mode 100644 index b4f67b3f..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/admin/pages/class-page-more-features.php +++ /dev/null @@ -1,24 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WbcrCmp_MoreFeaturesPage extends \WBCR\Factory_Templates_134\Pages\MoreFeatures { - -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/assets/css/url-span.css b/wp-content/plugins/!clearfy/components/comments-plus/assets/css/url-span.css deleted file mode 100644 index 681e4fe8..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/assets/css/url-span.css +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Url span - * @author Alex Kovalev , Github: https://github.com/alexkovalevv - * @copyright (c) 17.11.2017, Webcraftic - * @version 1.0 - */ - -.wbcr-clearfy-pseudo-link { - color: #008acf; - cursor: pointer; - text-decoration: underline; -} - -.wbcr-clearfy-pseudo-link:hover { - text-decoration: none; -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/assets/js/url-span.js b/wp-content/plugins/!clearfy/components/comments-plus/assets/js/url-span.js deleted file mode 100644 index 43ce44de..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/assets/js/url-span.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Url span - * @author Alex Kovalev , Github: https://github.com/alexkovalevv - * @copyright (c) 17.11.2017, Webcraftic - * @version 1.0 - */ - - -(function($) { - 'use strict'; - - $(function() { - $(document).on("click", ".wbcr-clearfy-pseudo-link", function() { - window.open($(this).data("uri")); - }); - }) - -})(jQuery); diff --git a/wp-content/plugins/!clearfy/components/comments-plus/clearfy.php b/wp-content/plugins/!clearfy/components/comments-plus/clearfy.php deleted file mode 100644 index 97e59632..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/clearfy.php +++ /dev/null @@ -1,52 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( ! defined( 'WCM_PLUGIN_ACTIVE' ) ) { - define( 'WCM_PLUGIN_VERSION', '1.2.0' ); - define( 'WCM_TEXT_DOMAIN', 'comments-plus' ); - define( 'WCM_PLUGIN_ACTIVE', true ); - - // Этот плагин загружен, как аддон для плагина Clearfy - define( 'LOADING_COMMENTS_PLUS_AS_ADDON', true ); - - if ( ! defined( 'WCM_PLUGIN_DIR' ) ) { - define( 'WCM_PLUGIN_DIR', dirname( __FILE__ ) ); - } - - if ( ! defined( 'WCM_PLUGIN_BASE' ) ) { - define( 'WCM_PLUGIN_BASE', plugin_basename( __FILE__ ) ); - } - - if ( ! defined( 'WCM_PLUGIN_URL' ) ) { - define( 'WCM_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - } - - try { - // Global scripts - require_once( WCM_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' ); - new WCM_Plugin(); - } catch( Exception $e ) { - $wcm_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Disable Comments', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wcm_plugin_error_func ); - add_action( 'network_admin_notices', $wcm_plugin_error_func ); - } -} - - diff --git a/wp-content/plugins/!clearfy/components/comments-plus/comments-plus.php b/wp-content/plugins/!clearfy/components/comments-plus/comments-plus.php deleted file mode 100644 index ed7028a2..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/comments-plus.php +++ /dev/null @@ -1,137 +0,0 @@ - - * Version: 1.2.0 - * Text Domain: comments-plus - * Domain Path: /languages/ - * Author URI: https://webcraftic.com - * Framework Version: FACTORY_480_VERSION - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Developers who contributions in the development plugin: - * - * Alexander Kovalev - * --------------------------------------------------------------------------------- - * Full plugin development. - * - * Email: alex.kovalevv@gmail.com - * Personal card: https://alexkovalevv.github.io - * Personal repo: https://github.com/alexkovalevv - * --------------------------------------------------------------------------------- - */ - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' ); - -// @formatter:off -$wcm_plugin_info = [ - 'prefix' => 'wbcr_comments_plus_', // wbcr_cmp - 'plugin_name' => 'wbcr_comments_plus', - 'plugin_title' => 'Webcraftic Disable comments', - - // PLUGIN SUPPORT - 'support_details' => [ - 'url' => 'https://webcraftic.com', - 'pages_map' => [ - 'support' => 'support', // {site}/support - 'docs' => 'docs' // {site}/docs - ] - ], - - // PLUGIN SUBSCRIBE FORM - 'subscribe_widget' => true, - 'subscribe_settings' => [ 'group_id' => '105408898' ], - - // PLUGIN ADVERTS - 'render_adverts' => true, - 'adverts_settings' => [ - 'dashboard_widget' => true, // show dashboard widget (default: false) - 'right_sidebar' => true, // show adverts sidebar (default: false) - 'notice' => true, // show notice message (default: false) - ], - - // FRAMEWORK MODULES - 'load_factory_modules' => [ - [ 'libs/factory/bootstrap', 'factory_bootstrap_482', 'admin' ], - [ 'libs/factory/forms', 'factory_forms_480', 'admin' ], - [ 'libs/factory/pages', 'factory_pages_480', 'admin' ], - [ 'libs/factory/templates', 'factory_templates_134', 'all' ], - [ 'libs/factory/adverts', 'factory_adverts_159', 'admin' ] - ] -]; - -$wcm_compatibility = new Wbcr_Factory480_Requirements( __FILE__, array_merge( $wcm_plugin_info, [ - 'plugin_already_activate' => defined( 'WCM_PLUGIN_ACTIVE' ), - 'required_php_version' => '5.4', - 'required_wp_version' => '4.2.0', - 'required_clearfy_check_component' => false -] ) ); - -/** - * If the plugin is compatible, then it will continue its work, otherwise it will be stopped, - * and the user will throw a warning. - */ -if ( ! $wcm_compatibility->check() ) { - return; -} - -/** - * ----------------------------------------------------------------------------- - * CONSTANTS - * Install frequently used constants and constants for debugging, which will be - * removed after compiling the plugin. - * ----------------------------------------------------------------------------- - */ - -// This plugin is activated -define( 'WCM_PLUGIN_ACTIVE', true ); -define( 'WCM_PLUGIN_VERSION', $wcm_compatibility->get_plugin_version() ); -define( 'WCM_PLUGIN_DIR', dirname( __FILE__ ) ); -define( 'WCM_PLUGIN_BASE', plugin_basename( __FILE__ ) ); -define( 'WCM_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - - - -/** - * ----------------------------------------------------------------------------- - * PLUGIN INIT - * ----------------------------------------------------------------------------- - */ - -require_once( WCM_PLUGIN_DIR . '/libs/factory/core/boot.php' ); -require_once( WCM_PLUGIN_DIR . '/includes/class-plugin.php' ); - -try { - new WCM_Plugin( __FILE__, array_merge( $wcm_plugin_info, [ - 'plugin_version' => WCM_PLUGIN_VERSION, - 'plugin_text_domain' => $wcm_compatibility->get_text_domain(), - ] ) ); -} catch ( Exception $e ) { - // Plugin wasn't initialized due to an error - define( 'WCM_PLUGIN_THROW_ERROR', true ); - - $wcm_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Disable Comments', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wcm_plugin_error_func ); - add_action( 'network_admin_notices', $wcm_plugin_error_func ); -} -// @formatter:on \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/class-clearfy-plugin.php b/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/class-clearfy-plugin.php deleted file mode 100644 index 0ddb9752..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/class-clearfy-plugin.php +++ /dev/null @@ -1,112 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WCM_Plugin { - - /** - * @see self::app() - * @var WCL_Plugin - */ - private static $app; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct() { - if ( ! class_exists( 'WCL_Plugin' ) ) { - throw new Exception( 'Plugin Clearfy is not installed!' ); - } - - self::$app = WCL_Plugin::app(); - - $this->global_scripts(); - - if ( is_admin() ) { - $this->admin_scripts(); - } - - add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] ); - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return WCL_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @throws \Exception - */ - public function plugins_loaded() { - - } - - /** - * Регистрирует классы страниц в плагине - * - * Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин - * выполнил подключение классов страниц. После регистрации, страницы будут доступные по url - * и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином - * все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину. - * - * @author Alexander Kovalev - * @throws \Exception - */ - private function register_pages() { - $admin_path = WCM_PLUGIN_DIR . '/admin/pages'; - - self::app()->registerPage( 'WbcrCmp_CommentsPage', $admin_path . '/class-page-comments.php' ); - self::app()->registerPage( 'WbcrCmp_DeleteCommentsPage', $admin_path . '/class-page-delete-comments.php' ); - } - - /** - * @author Alexander Kovalev - */ - private function admin_scripts() { - require( WCM_PLUGIN_DIR . '/admin/boot.php' ); - } - - /** - * @author Alexander Kovalev - */ - private function global_scripts() { - require( WCM_PLUGIN_DIR . '/includes/boot.php' ); - require( WCM_PLUGIN_DIR . '/includes/classes/class-configurate-comments.php' ); - new WbcrCmp_ConfigComments( self::$app ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/index.php b/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/includes/3rd-party/index.php +++ /dev/null @@ -1,2 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright Webcraftic 25.05.2017 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Получает список отключенных типов записей - * - * @return array|bool|mixed|void - */ -function wbcr_cmp_get_disabled_post_types() { - - $post_types = WCM_Plugin::app()->getPopulateOption( 'disable_comments_for_post_types' ); - - if ( WCM_Plugin::app()->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_comments' ) { - - $args = [ 'public' => true ]; - - if ( WCM_Plugin::app()->isNetworkActive() ) { - $args['_builtin'] = true; - } - - $all_post_types = get_post_types( $args, 'objects' ); - - return array_keys( $all_post_types ); - } - - // Not all extra_post_types might be registered on this particular site - /*if( $this->networkactive ) { - foreach( (array) $this->options['extra_post_types'] as $extra ) { - if( post_type_exists( $extra ) ) { - $types[] = $extra; - } - } - }*/ - - if ( is_array( $post_types ) ) { - return $post_types; - } - - return explode( ',', $post_types ); -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/includes/class-plugin.php b/wp-content/plugins/!clearfy/components/comments-plus/includes/class-plugin.php deleted file mode 100644 index dd169d35..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/includes/class-plugin.php +++ /dev/null @@ -1,119 +0,0 @@ - - * @copyright (c) 19.02.2018, Webcraftic - */ -class WCM_Plugin extends Wbcr_Factory480_Plugin { - - /** - * @see self::app() - * @var Wbcr_Factory480_Plugin - */ - private static $app; - - /** - * @since 3.1.0 - * @var array - */ - private $plugin_data; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct( $plugin_path, $data ) { - parent::__construct( $plugin_path, $data ); - - self::$app = $this; - $this->plugin_data = $data; - - $this->global_scripts(); - - if ( is_admin() ) { - $this->admin_scripts(); - } - - add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] ); - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return \Wbcr_Factory480_Plugin|\WCM_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @throws \Exception - */ - public function plugins_loaded() { - - } - - /** - * Регистрирует классы страниц в плагине - * - * Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин - * выполнил подключение классов страниц. После регистрации, страницы будут доступные по url - * и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином - * все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину. - * - * @author Alexander Kovalev - * @throws \Exception - */ - private function register_pages() { - $admin_path = WCM_PLUGIN_DIR . '/admin/pages'; - - self::app()->registerPage( 'WbcrCmp_CommentsPage', $admin_path . '/class-page-comments.php' ); - self::app()->registerPage( 'WbcrCmp_DeleteCommentsPage', $admin_path . '/class-page-delete-comments.php' ); - self::app()->registerPage( 'WbcrCmp_MoreFeaturesPage', $admin_path . '/class-page-more-features.php' ); - } - - /** - * @author Alexander Kovalev - */ - private function admin_scripts() { - require( WCM_PLUGIN_DIR . '/admin/boot.php' ); - } - - /** - * @author Alexander Kovalev - */ - private function global_scripts() { - require( WCM_PLUGIN_DIR . '/includes/boot.php' ); - require( WCM_PLUGIN_DIR . '/includes/classes/class-configurate-comments.php' ); - - new WbcrCmp_ConfigComments( self::$app ); - } -} - diff --git a/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/class-configurate-comments.php b/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/class-configurate-comments.php deleted file mode 100644 index 16856b24..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/class-configurate-comments.php +++ /dev/null @@ -1,338 +0,0 @@ -, Github: https://github.com/alexkovalevv - * - * @copyright (c) 2017 Webraftic Ltd - */ -class WbcrCmp_ConfigComments extends WBCR\Factory_Templates_134\Configurate { - - private $modified_types = []; - - /** - * @param Wbcr_Factory480_Plugin $plugin - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - parent::__construct( $plugin ); - $this->plugin = $plugin; - } - - public function registerActionsAndFilters() { - // These need to happen now - if ( $this->isDisabledAllPosts() ) { - add_action( 'widgets_init', [ $this, 'disableRcWidget' ] ); - add_action( 'template_redirect', [ $this, 'filterQuery' ], 9 ); // before redirect_canonical - - // Admin bar filtering has to happen here since WP 3.6 - add_action( 'template_redirect', [ $this, 'filterAdminBar' ] ); - add_action( 'admin_init', [ $this, 'filterAdminBar' ] ); - } else { - - if ( $this->getPopulateOption( 'comment_text_convert_links_pseudo' ) || $this->getPopulateOption( 'pseudo_comment_author_link' ) ) { - add_action( 'wp_enqueue_scripts', [ $this, 'assetsUrlSpanScripts' ] ); - } - - if ( $this->getPopulateOption( 'comment_text_convert_links_pseudo' ) ) { - add_filter( 'comment_text', [ $this, 'commentTextConvertLinksPseudo' ] ); - } - - if ( $this->getPopulateOption( 'pseudo_comment_author_link' ) ) { - add_filter( 'get_comment_author_link', [ $this, 'pseudoCommentAuthorLink' ], 100, 3 ); - } - - if ( $this->getPopulateOption( 'remove_url_from_comment_form' ) ) { - add_filter( 'comment_form_default_fields', [ $this, 'removeUrlFromCommentForm' ] ); - } - } - - // These can happen later - //add_action('plugins_loaded', array($this, 'register_text_domain')); - add_action( 'wp_loaded', [ $this, 'initWploadedFilters' ] ); - } - - /* - * Remove comment links from the admin bar in a multisite network. - */ - public function removeNetworkCommentLinks( $wp_admin_bar ) { - if ( $this->plugin->isNetworkActive() && is_user_logged_in() ) { - foreach ( (array) $wp_admin_bar->user->blogs as $blog ) { - $wp_admin_bar->remove_menu( 'blog-' . $blog->userblog_id . '-c' ); - } - } else { - // We have no way to know whether the plugin is active on other sites, so only remove this one - $wp_admin_bar->remove_menu( 'blog-' . get_current_blog_id() . '-c' ); - } - } - - private function isDisabledAllPosts() { - return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_comments'; - } - - private function isDisabledCertainPostTypes() { - return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_certain_post_types_comments'; - } - - private function isEnabledComments() { - return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'enable_comments'; - } - - /* - * Get an array of disabled post type. - */ - private function getDisabledPostTypes() { - return wbcr_cmp_get_disabled_post_types(); - } - - /* - * Check whether comments have been disabled on a given post type. - */ - private function isPostTypeDisabled( $type ) { - return $this->isDisabledCertainPostTypes() && in_array( $type, $this->getDisabledPostTypes() ); - } - - public function initWploadedFilters() { - $disabled_post_types = $this->getDisabledPostTypes(); - - if ( ! empty( $disabled_post_types ) && ! $this->isEnabledComments() ) { - foreach ( $disabled_post_types as $type ) { - // we need to know what native support was for later - if ( post_type_supports( $type, 'comments' ) ) { - $this->modified_types[] = $type; - remove_post_type_support( $type, 'comments' ); - remove_post_type_support( $type, 'trackbacks' ); - } - } - add_filter( 'comments_array', [ $this, 'filterExistingComments' ], 20, 2 ); - add_filter( 'comments_open', [ $this, 'filterCommentStatus' ], 20, 2 ); - add_filter( 'pings_open', [ $this, 'filterCommentStatus' ], 20, 2 ); - } - - // Filters for the admin only - if ( is_admin() ) { - add_action( 'admin_print_footer_scripts', [ $this, 'discussionNotice' ] ); - - // if only certain types are disabled, remember the original post status - if ( ! $this->isDisabledAllPosts() ) { - add_action( 'edit_form_advanced', [ $this, 'editFormInputs' ] ); - add_action( 'edit_page_form', [ $this, 'editFormInputs' ] ); - } else { - add_action( 'admin_menu', [ $this, 'filterAdminMenu' ], 9999 ); // do this as late as possible - add_action( 'admin_print_footer_scripts-index.php', [ $this, 'dashboardJs' ] ); - add_action( 'wp_dashboard_setup', [ $this, 'filterDashboard' ] ); - add_filter( 'pre_option_default_pingback_flag', '__return_zero' ); - } - } // Filters for front end only - else { - add_action( 'template_redirect', [ $this, 'checkCommentTemplate' ] ); - - if ( $this->isDisabledAllPosts() ) { - add_filter( 'feed_links_show_comments_feed', '__return_false' ); - } - } - } - - /* - * Replace the theme's comment template with a blank one. - * To prevent this, define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE - * and set it to True - */ - public function checkCommentTemplate() { - if ( is_singular() && ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( get_post_type() ) ) ) { - if ( ! defined( 'DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE' ) || DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE == true ) { - // Kill the comments template. - add_filter( 'comments_template', [ $this, 'dummyCommentsTemplate' ], 20 ); - } - // Remove comment-reply script for themes that include it indiscriminately - wp_deregister_script( 'comment-reply' ); - // feed_links_extra inserts a comments RSS link - remove_action( 'wp_head', 'feed_links_extra', 3 ); - } - } - - public function dummyCommentsTemplate() { - return WCM_PLUGIN_DIR . '/includes/comments-template.php'; - } - - /* - * Issue a 403 for all comment feed requests. - */ - public function filterQuery() { - if ( is_comment_feed() ) { - wp_die( __( 'Comments are closed.' ), '', [ 'response' => 403 ] ); - } - } - - /* - * Remove comment links from the admin bar. - */ - public function filterAdminBar() { - if ( is_admin_bar_showing() ) { - // Remove comments links from admin bar - remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 ); - } - - if ( is_multisite() ) { - add_action( 'admin_bar_menu', [ $this, 'removeNetworkCommentLinks' ], 500 ); - } - } - - public function editFormInputs() { - global $post; - // Without a dicussion meta box, comment_status will be set to closed on new/updated posts - if ( in_array( $post->post_type, $this->modified_types ) ) { - echo ''; - } - } - - public function discussionNotice() { - $disabled_post_types = $this->getDisabledPostTypes(); - if ( get_current_screen()->id == 'options-discussion' && ! empty( $disabled_post_types ) ) { - $names = []; - foreach ( $disabled_post_types as $type ) { - $type_object = get_post_type_object( $type ); - if ( empty( $type_object ) ) { - continue; - } - $names[ $type ] = $type_object->labels->name; - } - - ?> - - 403 ] ); - } - - remove_menu_page( 'edit-comments.php' ); - remove_submenu_page( 'options-general.php', 'options-discussion.php' ); - } - - public function filterDashboard() { - remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' ); - } - - public function dashboardJs() { - echo ''; - } - - public function filterExistingComments( $comments, $post_id ) { - $post = get_post( $post_id ); - - return ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( $post->post_type ) ) ? [] : $comments; - } - - public function filterCommentStatus( $open, $post_id ) { - $post = get_post( $post_id ); - - return ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( $post->post_type ) ) ? false : $open; - } - - public function disableRcWidget() { - unregister_widget( 'WP_Widget_Recent_Comments' ); - } - - /** - * Convert links in comment text into span pseudo links - * - * @param $comment_text - * - * @return mixed - */ - - public function commentTextConvertLinksPseudo( $comment_text ) { - - return $this->convertLinksPseudo( $comment_text ); - } - - /** - * Convert links into span pseudo links - * - * @param $text - * - * @return mixed - */ - - public function convertLinksPseudo( $text ) { - - return preg_replace_callback( '/]+href=[\'"](https?:\/\/[^"\']+)[\'"][^>]+>(.*?)<\/a>/i', [ - $this, - 'replaceLinks' - ], $text ); - } - - public function replaceLinks( $matches ) { - if ( $matches[1] == get_home_url() ) { - return $matches[0]; - } - - return ' ' . $matches[2] . ''; - } - - /** - * Convert author link to pseudo link - * - * @return string - */ - - public function pseudoCommentAuthorLink( $return, $author, $comment_ID ) { - $url = get_comment_author_url( $comment_ID ); - $author = get_comment_author( $comment_ID ); - - if ( empty( $url ) || 'http://' == $url ) { - $return = $author; - } else { - $return = '' . $author . ''; - } - - return $return; - } - - /** - * Remove url field from comment form - * - * @param $fields - * - * @return mixed - */ - - public function removeUrlFromCommentForm( $fields ) { - if ( isset( $fields['url'] ) ) { - unset( $fields['url'] ); - } - - return $fields; - } - - - // todo: Убрать это грязное решение со скриптами. - public function assetsUrlSpanScripts() { - if ( ! is_singular() ) { - return; - } - - wp_enqueue_style( 'wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/css/url-span.css', [], $this->plugin->getPluginVersion() ); - wp_enqueue_script( 'wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/js/url-span.js', [ 'jquery' ], $this->plugin->getPluginVersion(), true ); - } -} diff --git a/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/index.php b/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/includes/classes/index.php +++ /dev/null @@ -1,2 +0,0 @@ -=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:72 -msgid "Disable comments on the entire site" -msgstr "Deshabilitar comentarios en todo el sitio" - -#: admin/boot.php:78 admin/pages/comments.php:127 -msgid "Select post types" -msgstr "Seleccionar tipos publicaciones" - -#: admin/boot.php:83 admin/pages/comments.php:138 -msgid "Custom post types" -msgstr "Custom post types" - -#: admin/boot.php:88 admin/pages/comments.php:149 -msgid "Use persistent mode" -msgstr "Usa el modo persistente" - -#: admin/boot.php:93 admin/pages/comments.php:176 -msgid "Replace external links in comments on the JavaScript code" -msgstr "Reemplazar enlaces externos decomentarios en el código JavaScript" - -#: admin/boot.php:98 admin/pages/comments.php:185 -msgid "Replace external links from comment authors on the JavaScript code" -msgstr "" -"Reemplace los enlaces externos de los autores en comentarios del código " -"JavaScript" - -#: admin/boot.php:103 admin/pages/comments.php:167 -msgid "Remove field \"site\" in comment form" -msgstr "Eliminar campo \"sitio \" en formulario de comentario" - -#: admin/boot.php:115 -msgid "One click disable all comments" -msgstr "Un clic deshabilita todos los comentarios" - -#: admin/boot.php:136 -msgid "Get ultimate plugin free" -msgstr "Obtener el ultimate plugin gratis" - -#: admin/pages/comments.php:37 admin/pages/comments.php:91 -msgid "Disable comments" -msgstr "Desactivar Comentarios" - -#: admin/pages/comments.php:38 -msgid "Manage site comments" -msgstr "Administrar los comentarios del sitio" - -#: admin/pages/comments.php:51 -msgid "Comments" -msgstr "Comentarios" - -#: admin/pages/comments.php:51 -msgid "General" -msgstr "General" - -#: admin/pages/comments.php:66 -msgid "Global disabling of comments" -msgstr "Deshabilitación global de comentarios." - -#: admin/pages/comments.php:66 -msgid "" -"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." -msgstr "" -"¿Cuál es la diferencia entre estas y las funciones nativas de WordPress? " -"¡WordPress deshabilita comentarios solo para nuevas publicaciones! Al usar " -"las funciones a continuación, puede deshabilitar los comentarios " -"globalmente, incluso para las publicaciones anteriores, y puede elegir qué " -"tipo de comentarios deshabilitar. El plugin también desactiva la " -"funcionalidad de comentarios, lo que crea una cierta carga en el sitio." - -#: admin/pages/comments.php:93 -msgid "Not disable" -msgstr "No deshabilitar" - -#: admin/pages/comments.php:96 -msgid "Everywhere" -msgstr "Donde sea" - -#: admin/pages/comments.php:97 -#, php-format -msgid "" -"You can delete all comments in the database by clicking on this link (cleaning comments in database)." -msgstr "" -"Puede eliminar los comentarios en la base de datos haciendo clic en este " -"enlace (limpiando comentarios en la base de datos)." - -#: admin/pages/comments.php:101 -msgid "On certain post types" -msgstr "Para ciertos tipos de correos" - -#: admin/pages/comments.php:102 -#, php-format -msgid "" -"You can delete all comments for the selected post types. Select the post " -"types below and save the settings. After that, click the link (delete all comments for the selected post types in database)." -msgstr "" -"Puede eliminar los comentarios para los tipos de publicación seleccionados. " -"Seleccione los tipos de publicación y guarde la configuración. Después, haga " -"clic en el enlace (eliminar todos los comentarios de los " -"tipos de publicaciones seleccionados en la base de datos)." - -#: admin/pages/comments.php:106 -msgid "" -"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" -msgstr "" -"Donde sea - Advertencia: Esta opción es global y afectará a todo su sitio. " -"Úselo solo si desea deshabilitar comentarios en todas partes. Una " -"descripción completa de lo que hace esta opción está disponible aquí." - -#: admin/pages/comments.php:106 -msgid "" -"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." -msgstr "" -"Para ciertas publicaciones, al deshabilitar los comentarios, se deshabilita " -"los trackbacks y los pingbacks. Los campos relacionados con comentarios se " -"ocultarán de las pantallas de edición/edición-rápida de las publicaciones " -"afectadas. Estas configuraciones no se pueden anular para publicaciones " -"individuales." - -#: admin/pages/comments.php:130 -msgid "Select the post types for which comments will be disabled" -msgstr "" -"Seleccione los tipos de publicación para los cuales se deshabilitarán los " -"comentarios." - -#: admin/pages/comments.php:141 -msgid "" -"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)." -msgstr "" -"Solo los tipos de post types incorporados aparecen arriba. Si desea " -"deshabilitar los comentarios sobre otros tipos de post types personalizadas " -"en toda la red, puede proporcionar una lista separada por comas de los tipos " -"de post types a continuación (use la barra que identifica el tipo de " -"publicación)." - -#: admin/pages/comments.php:151 -msgid "" -"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." -msgstr "" -"Esto hará cambios persistentes en su base de datos — Los comentarios " -"permanecerán cerrados incluso si luego deshabilitas el plugin. No lo use si " -"solo desea deshabilitar los comentarios temporalmente." - -#: admin/pages/comments.php:161 -msgid "General settings for comments" -msgstr "Configuraciones generales para comentarios" - -#: admin/pages/comments.php:161 -msgid "These settings will help you improve SEO and reduce the amount of spam." -msgstr "" -"Estas configuraciones te ayudarán a mejorar el SEO y reducir la cantidad de " -"spam." - -#: admin/pages/comments.php:169 -msgid "" -"Tired of spam in the comments? Do visitors leave \"blank\" comments for the " -"sake of a link to their site?" -msgstr "" -"¿Cansado de spam en los comentarios? ¿Los visitantes dejan \"en blanco\" " -"los comentarios por un enlace a su sitio?" - -#: admin/pages/comments.php:169 -msgid "Removes the \"Site\" field from the comment form." -msgstr "Elimina el campo \"Sitio \" del formulario de comentarios." - -#: admin/pages/comments.php:169 -msgid "" -"Works with the standard comment form, if the form is manually written in " -"your theme-it probably will not work!" -msgstr "" -"Funciona con el formulario de comentarios estándar, si el formulario está " -"escrito manualmente en su tema, ¡probablemente no funcionará!" - -#: admin/pages/comments.php:178 -msgid "" -"Superfluous external links from comments, which can be typed from a dozen " -"and more for one article, do not bring anything good for promotion." -msgstr "" -"Los enlaces externos superfluos en los comentarios y en cantidades mayores " -"de 12 no aportan nada bueno para el SEO o algunas promociones." - -#: admin/pages/comments.php:178 -#, php-format -msgid "Replaces the links of this kind of %s, on links of this kind %s" -msgstr "Reemplaza los enlaces del tipo %s, en enlaces de este tipo %s" - -#: admin/pages/comments.php:187 -msgid "" -"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." -msgstr "" -"Hasta un 90 por ciento de los comentarios del Blog pueden ser usados para " -"enlaces externos, incluso, usar la etiqueta \"nofollow\" no ayudará. " - -#: admin/pages/comments.php:187 -msgid "" -"Replaces the links of the authors of comments on the JavaScript code, it is " -"impossible to distinguish it from usual links." -msgstr "" -"Reemplaza los enlaces de los autores de los comentarios sobre el código " -"JavaScript, es imposible distinguirlo de los enlaces habituales." - -#: admin/pages/comments.php:187 -msgid "In some Wordpress topics this may not work." -msgstr "En algunos tópicos de Wordpress, ésto podría no trabajar" - -#: admin/pages/delete-comments.php:41 -msgid "Comments cleaner" -msgstr "Limpieza de comentarios" - -#: admin/pages/delete-comments.php:62 -msgid "All comments have been deleted." -msgstr "Todos los comentarios han sido eliminados." - -#: admin/pages/delete-comments.php:71 -msgid "" -"An error occurred while trying to delete comments. Internal error occured. " -"Please try again later." -msgstr "" -"Se ha producido un error al intentar eliminar comentarios. Se produjo un " -"error interno. Por favor, inténtelo de nuevo más tarde." - -#: admin/pages/delete-comments.php:211 -msgid "" -"Are you sure you want to delete comments from the database without restoring?" -msgstr "" -"¿Está seguro de que desea eliminar los comentarios de la base de datos sin " -"restaurar?" - -#: admin/pages/delete-comments.php:226 -msgid "Delete " -msgstr "Borrar" - -#: admin/pages/delete-comments.php:232 -msgid "Comments clearing tools" -msgstr "Herramientas de limpieza de comentarios" - -#: admin/pages/delete-comments.php:235 -msgid "" -"These functions can be useful for global disabling comments or bulk cleaning " -"spam comments." -msgstr "" -"Estas funciones pueden ser útiles para deshabilitar los comentarios globales " -"o limpiar de forma masiva los comentarios de spam." - -#: admin/pages/delete-comments.php:240 -msgid "Remove all comments" -msgstr "Eliminar todos los comentarios" - -#: admin/pages/delete-comments.php:242 -msgid "You can delete all comments in your database with one click." -msgstr "Borrar todos los comentarios en la basa de datos con un click" - -#: admin/pages/delete-comments.php:244 -msgid "Choose post types" -msgstr "Elegir tipos de publicaciones" - -#: admin/pages/delete-comments.php:249 -msgid "Select all" -msgstr "Seleccionar todo" - -#: admin/pages/delete-comments.php:266 -#, php-format -msgid "Delete Woocommerce order notices? (%d)" -msgstr "¿Desea eliminar los avisos de pedidos de Woocommerce? (%d)" - -#: admin/pages/delete-comments.php:272 -#, php-format -msgid "Delete (%s)" -msgstr "Borrar (%s)" - -#: admin/pages/delete-comments.php:279 -msgid "Remove spam comments" -msgstr "Eliminar comentarios spam" - -#: admin/pages/delete-comments.php:281 -msgid "You can remove only spam comments from the database with one click." -msgstr "" -"Puede eliminar solo los comentarios spam de la base de datos con un solo " -"clic." - -#: admin/pages/delete-comments.php:283 admin/pages/delete-comments.php:290 -#: admin/pages/delete-comments.php:297 -#, php-format -msgid "Delete (%d)" -msgstr "Borrar (%d)" - -#: admin/pages/delete-comments.php:286 -msgid "Remove unapproved comments" -msgstr "Eliminar comentarios no aprobados" - -#: admin/pages/delete-comments.php:288 -msgid "" -"You can remove only unapproved comments from the database with one click." -msgstr "" -"Puede eliminar solo los comentarios no aprobados de la base de datos con un " -"solo click." - -#: admin/pages/delete-comments.php:293 -msgid "Remove trashed comments" -msgstr "Eliminar comentarios en la papelera" - -#: admin/pages/delete-comments.php:295 -msgid "You can remove only trashed comments from the database with one click." -msgstr "" -"Puede borrar solo los comentarios eliminados de la base de datos con un solo " -"click." - -#: comments-plus.php:70 -msgid "Webcraftic Disable comments" -msgstr "Deshabilitar comentarios Webcraftic " - -#: includes/classes/class.configurate-comments.php:180 -#: includes/classes/class.configurate-comments.php:236 -msgid "Comments are closed." -msgstr "Cerrados los comentarios" - -#: includes/classes/class.configurate-comments.php:224 -#, php-format -msgid "" -"Note: The %s plugin is currently active, and comments are " -"completely disabled on: %s. Many of the settings below will not be " -"applicable for those post types." -msgstr "" -"Nota: el plugin %s está activo y los comentarios están " -"completamente deshabilitados en: %s. Muchas de las configuraciones a " -"continuación no serán aplicables para esos tipos de publicaciones." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.mo b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.mo deleted file mode 100644 index 250884c1..00000000 Binary files a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.po b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.po deleted file mode 100644 index 89b4a111..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-nl_BE.po +++ /dev/null @@ -1,359 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Clearfy\n" -"POT-Creation-Date: 2018-09-06 18:27+0300\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: nl_BE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:18 -msgid "Disable comments on the entire site" -msgstr "Reacties uitschakelen op de volledige site" - -#: admin/boot.php:24 admin/pages/comments.php:129 -msgid "Select post types" -msgstr "Selecteer bericht types" - -#: admin/boot.php:29 admin/pages/comments.php:157 -msgid "Replace external links in comments on the JavaScript code" -msgstr "Vervang externe links in opmerkingen over de JavaScript code" - -#: admin/boot.php:34 admin/pages/comments.php:166 -msgid "Replace external links from comment authors on the JavaScript code" -msgstr "Vervang externe links van commentaar auteurs op de JavaScript code" - -#: admin/boot.php:39 -msgid "Disable X-Pingback" -msgstr "Uitschakelen X-Pingback" - -#: admin/boot.php:44 admin/pages/comments.php:148 -msgid "Remove field \"site\" in comment form" -msgstr "Verwijder het veld \"site\" in reactie formulier" - -#: admin/boot.php:56 -msgid "One click disable all comments" -msgstr "Alle reacties uitschakelen in één klik" - -#: admin/boot.php:77 -msgid "Get ultimate plugin free" -msgstr "Krijg ultieme plugin gratis" - -#: admin/pages/comments.php:33 admin/pages/comments.php:94 -msgid "Disable comments" -msgstr "Reacties uitschakelen" - -#: admin/pages/comments.php:47 -msgid "Comments" -msgstr "Opmerkingen" - -#: admin/pages/comments.php:48 -msgid "General" -msgstr "Algemeen" - -#: admin/pages/comments.php:81 -msgid "Global disabling of comments" -msgstr "Algemene uitschakeling van reacties" - -#: admin/pages/comments.php:81 -msgid "" -"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." -msgstr "" -"Wat is het verschil tussen deze en native WordPress-functies? WordPress " -"schakelt alleen reacties uit voor nieuwe berichten! Met behulp van de " -"onderstaande functies kunt u opmerkingen globaal uitschakelen, zelfs voor oude " -"berichten, en kunt u kiezen welk bericht een opmerking is om uit te schakelen. " -"De plugin schakelt ook de commentaar functionaliteit zelf uit, die de site op " -"één of andere manier belast." - -#: admin/pages/comments.php:96 -msgid "Not disable" -msgstr "Niet uitschakelen" - -#: admin/pages/comments.php:99 -msgid "Everywhere" -msgstr "Overal" - -#: admin/pages/comments.php:100 -#, php-format -msgid "" -"You can delete all comments in the database by clicking on this link (cleaning comments in database)." -msgstr "" -"U kunt alle reacties in de database verwijderen door op deze link te klikken " -"(reacties opschonen in database)." - -#: admin/pages/comments.php:104 -msgid "On certain post types" -msgstr "Op bepaalde bericht types" - -#: admin/pages/comments.php:105 -#, php-format -msgid "" -"You can delete all comments for the selected post types. Select the post types " -"below and save the settings. After that, click the link (delete " -"all comments for the selected post types in database)." -msgstr "" -"U kunt alle reacties voor de geselecteerde bericht types verwijderen. " -"Selecteer de bericht types hieronder en sla de instellingen op. Klik daarna op " -"de link (verwijder alle reacties voor de geselecteerde bericht " -"types in de database)." - -#: admin/pages/comments.php:109 -msgid "" -"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" -msgstr "" -"Overal - Waarschuwing: deze optie is globaal en heeft invloed op uw hele site. " -"Gebruik het alleen als u reacties overal wilt uitschakelen. Een volledige " -"beschrijving van wat deze optie doet, is hier beschikbaar" - -#: admin/pages/comments.php:109 -msgid "" -"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." -msgstr "" -"Op bepaalde bericht types: Door het uitschakelen van reacties, worden ook " -"trackbacks en pingbacks uitgeschakeld. Alle aan reactie gerelateerde velden " -"worden ook verborgen in de editeer/quick-edit schermen van de betreffende " -"berichten. Deze instellingen kunnen niet worden overschreven voor individuele " -"berichten." - -#: admin/pages/comments.php:132 -msgid "Select the post types for which comments will be disabled" -msgstr "Selecteer de bericht types waarvoor reacties zullen worden uitgeschakeld" - -#: admin/pages/comments.php:142 -msgid "General settings for comments" -msgstr "Algemene instellingen voor reacties" - -#: admin/pages/comments.php:142 -msgid "These settings will help you improve SEO and reduce the amount of spam." -msgstr "" -"Met deze instellingen kunt u de SEO verbeteren en de hoeveelheid spam " -"verminderen." - -#: admin/pages/comments.php:150 -msgid "" -"Tired of spam in the comments? Do visitors leave \"blank\" comments for the " -"sake of a link to their site?" -msgstr "" -"Ben je spam in de reacties beu? Laten bezoekers \"lege\" reacties achter om " -"enkel te linken naar hun site?" - -#: admin/pages/comments.php:150 -msgid "Removes the \"Site\" field from the comment form." -msgstr "Verwijdert het veld \"Site\" uit het reactie formulier." - -#: admin/pages/comments.php:150 -msgid "" -"Works with the standard comment form, if the form is manually written in your " -"theme-it probably will not work!" -msgstr "" -"Werkt met het standaard reactie formulier, als het formulier handmatig aan uw " -"thema werd toegevoegd, zal het waarschijnlijk niet werken!" - -#: admin/pages/comments.php:159 -msgid "" -"Superfluous external links from comments, which can be typed from a dozen and " -"more for one article, do not bring anything good for promotion." -msgstr "" -"Overbodige externe linken van reacties, die uit een tiental of meer voor één " -"artikel getypt kunnen zijn, brengen promotioneel niets bij." - -#: admin/pages/comments.php:159 -#, php-format -msgid "Replaces the links of this kind of %s, on links of this kind %s" -msgstr "Vervangt de linken van dit soort %s, naar linken van dit type %s" - -#: admin/pages/comments.php:168 -msgid "" -"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." -msgstr "" -"Tot 90 procent van de reacties in de blog wordt achtergelaten omwille van een " -"externe link. Zelfs nofollow voor pagina gewichtsverlies helpt hier niet." - -#: admin/pages/comments.php:168 -msgid "" -"Replaces the links of the authors of comments on the JavaScript code, it is " -"impossible to distinguish it from usual links." -msgstr "" -"Vervangt de linken van de auteurs van reacties op de JavaScript code, het is " -"onmogelijk om het te onderscheiden van de gebruikelijke linken." - -#: admin/pages/comments.php:168 -msgid "In some Wordpress topics this may not work." -msgstr "In sommige onderdelen van WordPress werkt dit misschien niet." - -#: admin/pages/comments.php:175 -msgid "Disable XML-RPC" -msgstr "Schakel XML-RPC uit" - -#: admin/pages/comments.php:177 -msgid "" -"A pingback is basically an automated comment that gets created when another " -"blog links to you. A self-pingback is created when you link to an article " -"within your own blog. Pingbacks are essentially nothing more than spam and " -"simply waste resources." -msgstr "" -"Een pingback is in feite een geautomatiseerde commentaar die wordt gemaakt " -"wanneer een andere blog linkt naar u. Een zelf-pingback wordt gemaakt wanneer " -"u een linkt naar een artikel binnen uw eigen blog. Pingbacks zijn in wezen " -"niets meer dan spam en simpelweg een verspilling van resources." - -#: admin/pages/comments.php:177 -msgid "Removes the server responses a reference to the xmlrpc file." -msgstr "Verwijdert de server reacties bij verwijzing naar het xmlrpc bestand." - -#: admin/pages/delete-comments.php:36 -msgid "Comments cleaner" -msgstr "Reacties opkuisen" - -#: admin/pages/delete-comments.php:75 -msgid "All comments have been deleted." -msgstr "Alle opmerkingen zijn verwijderd." - -#: admin/pages/delete-comments.php:84 -msgid "" -"An error occurred while trying to delete comments. Internal error occured. " -"Please try again later." -msgstr "" -"Er is een fout opgetreden bij het verwijderen van opmerkingen. Interne fout " -"opgetreden. Probeer het later opnieuw." - -#: admin/pages/delete-comments.php:154 -msgid "" -"Are you sure you want to delete comments from the database without restoring?" -msgstr "" -"Weet je zeker dat je reacties uit de database wilt verwijderen zonder te " -"herstellen?" - -#: admin/pages/delete-comments.php:169 -msgid "Delete " -msgstr "" - -#: admin/pages/delete-comments.php:175 -msgid "Comments clearing tools" -msgstr "Opmerkingen wissen tools" - -#: admin/pages/delete-comments.php:178 -msgid "" -"These functions can be useful for global disabling comments or bulk cleaning " -"spam comments." -msgstr "" -"Deze functies kunnen handig zijn voor algemene uitschakeling van opmerkingen " -"of voor het opschonen van spam-reacties." - -#: admin/pages/delete-comments.php:183 -msgid "Remove all comments" -msgstr "Verwijder alle reacties" - -#: admin/pages/delete-comments.php:185 -msgid "You can delete all comments in your database with one click." -msgstr "U kunt alle reacties in uw database met één klik verwijderen." - -#: admin/pages/delete-comments.php:187 -msgid "Choose post types" -msgstr "Kies bericht types" - -#: admin/pages/delete-comments.php:192 -msgid "Select all" -msgstr "Selecteer alles" - -#: admin/pages/delete-comments.php:209 -#, php-format -msgid "Delete Woocommerce order notices? (%d)" -msgstr "Woocommerce ordermeldingen verwijderen? (%d)" - -#: admin/pages/delete-comments.php:215 -#, php-format -msgid "Delete (%s)" -msgstr "" - -#: admin/pages/delete-comments.php:222 -msgid "Remove spam comments" -msgstr "Verwijder spam reacties" - -#: admin/pages/delete-comments.php:224 -msgid "You can remove only spam comments from the database with one click." -msgstr "U kunt met één muisklik enkel spam reacties uit de database verwijderen." - -#: admin/pages/delete-comments.php:226 admin/pages/delete-comments.php:233 -#: admin/pages/delete-comments.php:240 -#, php-format -msgid "Delete (%d)" -msgstr "Verwijderen (%d)" - -#: admin/pages/delete-comments.php:229 -msgid "Remove unapproved comments" -msgstr "Verwijder niet-goedgekeurde reacties" - -#: admin/pages/delete-comments.php:231 -msgid "You can remove only unapproved comments from the database with one click." -msgstr "" -"U kunt met één klik enkel niet-goedgekeurde reacties uit de database " -"verwijderen." - -#: admin/pages/delete-comments.php:236 -msgid "Remove trashed comments" -msgstr "Verwijder reacties uit vuilbak" - -#: admin/pages/delete-comments.php:238 -msgid "You can remove only trashed comments from the database with one click." -msgstr "" -"U kunt met één klik enkel de reacties in de vuilbak uit de database " -"verwijderen." - -#: comments-plus.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Disable comments\"!" -msgstr "" -"We hebben geconstateerd dat de plugin \"Clearfy - uitschakelen ongebruikte " -"functies\" is geïnstalleerd, deze plugin heeft al de functie voor het " -"uitschakelen van reacties, dus u kunt de plugin \"Uitschakelen Reacties\" " -"deactiveren!" - -#: comments-plus.php:81 -msgid "Webcraftic Disable comments" -msgstr "Webcraftic uitschakelen reacties" - -#: includes/classes/class.configurate-comments.php:188 -#: includes/classes/class.configurate-comments.php:240 -msgid "Comments are closed." -msgstr "Reacties zijn gesloten." - -#: includes/classes/class.configurate-comments.php:228 -#, php-format -msgid "" -"Note: The %s plugin is currently active, and comments are completely " -"disabled on: %s. Many of the settings below will not be applicable for those " -"post types." -msgstr "" -"Opmerking: de plugin %s is momenteel actief en reacties zijn volledig " -"uitgeschakeld op: %s. Veel van onderstaande instellingen zijn niet van " -"toepassing op die bericht types." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.mo b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.mo deleted file mode 100644 index ba5ac2af..00000000 Binary files a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.po b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.po deleted file mode 100644 index fe55757c..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-pt_BR.po +++ /dev/null @@ -1,360 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-09-06 18:27+0300\n" -"PO-Revision-Date: 2018-09-06 18:27+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:18 -msgid "Disable comments on the entire site" -msgstr "Desativar comentários em todo o site" - -#: admin/boot.php:24 admin/pages/comments.php:129 -msgid "Select post types" -msgstr "Selecione os tipos de postagem" - -#: admin/boot.php:29 admin/pages/comments.php:157 -msgid "Replace external links in comments on the JavaScript code" -msgstr "Substituir links externos nos comentários no código JavaScript" - -#: admin/boot.php:34 admin/pages/comments.php:166 -msgid "Replace external links from comment authors on the JavaScript code" -msgstr "" -"Substituir links externos de autores de comentários no código JavaScript" - -#: admin/boot.php:39 -msgid "Disable X-Pingback" -msgstr "Desativar X-Pingback" - -#: admin/boot.php:44 admin/pages/comments.php:148 -msgid "Remove field \"site\" in comment form" -msgstr "Remover campo \"site \" no formulário de comentário" - -#: admin/boot.php:56 -msgid "One click disable all comments" -msgstr "Um clique desativa todos os comentários" - -#: admin/boot.php:77 -msgid "Get ultimate plugin free" -msgstr "Obtenha o melhor plugin grátis" - -#: admin/pages/comments.php:33 admin/pages/comments.php:94 -msgid "Disable comments" -msgstr "Desativar comentários" - -#: admin/pages/comments.php:47 -msgid "Comments" -msgstr "Comentários" - -#: admin/pages/comments.php:48 -msgid "General" -msgstr "Geral" - -#: admin/pages/comments.php:81 -msgid "Global disabling of comments" -msgstr "Desativação global de comentários" - -#: admin/pages/comments.php:81 -msgid "" -"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." -msgstr "" -"Qual é a diferença entre essas e funções nativas do WordPress? O WordPress " -"desativa os comentários apenas para novas postagens! Usando as funções " -"abaixo, você pode desativar os comentários globalmente, mesmo para postagens " -"antigas, e pode escolher quais comentários de tipos de post serão " -"desativados. O plug-in também desativa a própria funcionalidade de " -"comentários, o que cria uma certa carga no site." - -#: admin/pages/comments.php:96 -msgid "Not disable" -msgstr "Não desativar" - -#: admin/pages/comments.php:99 -msgid "Everywhere" -msgstr "Em toda parte" - -#: admin/pages/comments.php:100 -#, php-format -msgid "" -"You can delete all comments in the database by clicking on this link (cleaning comments in database)." -msgstr "" -"Você pode excluir todos os comentários no banco de dados clicando neste link " -"( limpando comentários no banco de dados )." - -#: admin/pages/comments.php:104 -msgid "On certain post types" -msgstr "Em certos tipos de postagem" - -#: admin/pages/comments.php:105 -#, php-format -msgid "" -"You can delete all comments for the selected post types. Select the post " -"types below and save the settings. After that, click the link (delete all comments for the selected post types in database)." -msgstr "" -"Você pode excluir todos os comentários para os tipos de postagem " -"selecionados. Selecione os tipos de postagem abaixo e salve as " -"configurações. Depois disso, clique no link ( exclua todos os " -"comentários para os tipos de postagem selecionados no banco de dados )." - -#: admin/pages/comments.php:109 -msgid "" -"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" -msgstr "" -"Em todo lugar - Aviso: essa opção é global e afetará todo o seu site. Use-o " -"somente se você quiser desabilitar os comentários em todos os lugares. Uma " -"descrição completa do que esta opção faz está disponível aqui" - -#: admin/pages/comments.php:109 -msgid "" -"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." -msgstr "" -"Em determinados tipos de postagens - a desativação de comentários também " -"desativará os trackbacks e os pingbacks. Todos os campos relacionados a " -"comentários também ficarão ocultos nas telas de edição / edição rápida das " -"postagens afetadas. Essas configurações não podem ser substituídas por " -"postagens individuais." - -#: admin/pages/comments.php:132 -msgid "Select the post types for which comments will be disabled" -msgstr "" -"Selecione os tipos de postagem para os quais os comentários serão desativados" - -#: admin/pages/comments.php:142 -msgid "General settings for comments" -msgstr "Configurações gerais para comentários" - -#: admin/pages/comments.php:142 -msgid "These settings will help you improve SEO and reduce the amount of spam." -msgstr "" -"Essas configurações ajudarão você a melhorar o SEO e reduzir a quantidade de " -"spam." - -#: admin/pages/comments.php:150 -msgid "" -"Tired of spam in the comments? Do visitors leave \"blank\" comments for the " -"sake of a link to their site?" -msgstr "" -"Cansado de spam nos comentários? Os visitantes deixam comentários \"em " -"branco \" por causa de um link para seu site?" - -#: admin/pages/comments.php:150 -msgid "Removes the \"Site\" field from the comment form." -msgstr "Remove o campo \"Site \" do formulário de comentários." - -#: admin/pages/comments.php:150 -msgid "" -"Works with the standard comment form, if the form is manually written in " -"your theme-it probably will not work!" -msgstr "" -"Funciona com o formulário de comentários padrão, se o formulário for escrito " -"manualmente no seu tema, provavelmente não funcionará!" - -#: admin/pages/comments.php:159 -msgid "" -"Superfluous external links from comments, which can be typed from a dozen " -"and more for one article, do not bring anything good for promotion." -msgstr "" -"Links externos supérfluos de comentários, que podem ser digitados de uma " -"dúzia ou mais para um artigo, não trazem nada de bom para a promoção." - -#: admin/pages/comments.php:159 -#, php-format -msgid "Replaces the links of this kind of %s, on links of this kind %s" -msgstr "Substitui os links deste tipo de %s , em links desse tipo %s" - -#: admin/pages/comments.php:168 -msgid "" -"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." -msgstr "" -"Até 90 por cento dos comentários no blog podem ser deixados por causa de um " -"link externo. Mesmo nofollow da perda de peso da página aqui não ajuda." - -#: admin/pages/comments.php:168 -msgid "" -"Replaces the links of the authors of comments on the JavaScript code, it is " -"impossible to distinguish it from usual links." -msgstr "" -"Substitui os links dos autores de comentários no código JavaScript, é " -"impossível distingui-lo dos links usuais." - -#: admin/pages/comments.php:168 -msgid "In some Wordpress topics this may not work." -msgstr "Em alguns tópicos do WordPress isso pode não funcionar." - -#: admin/pages/comments.php:175 -msgid "Disable XML-RPC" -msgstr "Desativar o XML-RPC" - -#: admin/pages/comments.php:177 -msgid "" -"A pingback is basically an automated comment that gets created when another " -"blog links to you. A self-pingback is created when you link to an article " -"within your own blog. Pingbacks are essentially nothing more than spam and " -"simply waste resources." -msgstr "" -"Um pingback é basicamente um comentário automatizado que é criado quando " -"outro blog é direcionado a você. Um pingback automático é criado quando você " -"vincula um artigo ao seu próprio blog. Pingbacks são essencialmente nada " -"mais que spam e simplesmente desperdiçam recursos." - -#: admin/pages/comments.php:177 -msgid "Removes the server responses a reference to the xmlrpc file." -msgstr "Remove as respostas do servidor uma referência ao arquivo xmlrpc." - -#: admin/pages/delete-comments.php:36 -msgid "Comments cleaner" -msgstr "Comentários mais limpo" - -#: admin/pages/delete-comments.php:75 -msgid "All comments have been deleted." -msgstr "Todos os comentários foram apagados." - -#: admin/pages/delete-comments.php:84 -msgid "" -"An error occurred while trying to delete comments. Internal error occured. " -"Please try again later." -msgstr "" -"Ocorreu um erro ao tentar excluir comentários. Erro interno ocorrido. Por " -"favor, tente novamente mais tarde." - -#: admin/pages/delete-comments.php:154 -msgid "" -"Are you sure you want to delete comments from the database without restoring?" -msgstr "" -"Tem certeza de que deseja excluir comentários do banco de dados sem " -"restaurar?" - -#: admin/pages/delete-comments.php:169 -msgid "Delete " -msgstr "" - -#: admin/pages/delete-comments.php:175 -msgid "Comments clearing tools" -msgstr "Ferramentas de compensação de comentários" - -#: admin/pages/delete-comments.php:178 -msgid "" -"These functions can be useful for global disabling comments or bulk cleaning " -"spam comments." -msgstr "" -"Essas funções podem ser úteis para comentários globais de desativação ou " -"comentários de spam de limpeza em massa." - -#: admin/pages/delete-comments.php:183 -msgid "Remove all comments" -msgstr "Remover todos os comentários" - -#: admin/pages/delete-comments.php:185 -msgid "You can delete all comments in your database with one click." -msgstr "" -"Você pode excluir todos os comentários em seu banco de dados com um clique." - -#: admin/pages/delete-comments.php:187 -msgid "Choose post types" -msgstr "Escolher tipos de postagem" - -#: admin/pages/delete-comments.php:192 -msgid "Select all" -msgstr "Selecionar tudo" - -#: admin/pages/delete-comments.php:209 -#, php-format -msgid "Delete Woocommerce order notices? (%d)" -msgstr "Excluir avisos de pedido do Woocommerce? ( %d )" - -#: admin/pages/delete-comments.php:215 -#, php-format -msgid "Delete (%s)" -msgstr "" - -#: admin/pages/delete-comments.php:222 -msgid "Remove spam comments" -msgstr "Remover comentários de spam" - -#: admin/pages/delete-comments.php:224 -msgid "You can remove only spam comments from the database with one click." -msgstr "" -"Você pode remover apenas comentários de spam do banco de dados com um clique." - -#: admin/pages/delete-comments.php:226 admin/pages/delete-comments.php:233 -#: admin/pages/delete-comments.php:240 -#, php-format -msgid "Delete (%d)" -msgstr "Excluir ( %d )" - -#: admin/pages/delete-comments.php:229 -msgid "Remove unapproved comments" -msgstr "Remover comentários não aprovados" - -#: admin/pages/delete-comments.php:231 -msgid "" -"You can remove only unapproved comments from the database with one click." -msgstr "" -"Você pode remover apenas comentários não aprovados do banco de dados com um " -"clique." - -#: admin/pages/delete-comments.php:236 -msgid "Remove trashed comments" -msgstr "Remover comentários na lixeira" - -#: admin/pages/delete-comments.php:238 -msgid "You can remove only trashed comments from the database with one click." -msgstr "" -"Você pode remover apenas os comentários da base de dados com um clique." - -#: comments-plus.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Disable comments\"!" -msgstr "" -"Descobrimos que você tem o plug-in \"Clearfy - desativar recursos não " -"utilizados \" instalado, este plugin já tem funções de desabilitar " -"comentários, então você pode desativar o plugin \"Desativar comentários \"!" - -#: comments-plus.php:81 -msgid "Webcraftic Disable comments" -msgstr "Webcraftic Desabilitar comentários" - -#: includes/classes/class.configurate-comments.php:188 -#: includes/classes/class.configurate-comments.php:240 -msgid "Comments are closed." -msgstr "Comentários estão fechados." - -#: includes/classes/class.configurate-comments.php:228 -#, php-format -msgid "" -"Note: The %s plugin is currently active, and comments are " -"completely disabled on: %s. Many of the settings below will not be " -"applicable for those post types." -msgstr "" -"Nota: O plug-in %s está ativo no momento e os comentários estão " -"completamente desativados em: %s . Muitas das configurações abaixo não serão " -"aplicáveis ​​a esses tipos de postagem." \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.mo b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.mo deleted file mode 100644 index 4cd0562c..00000000 Binary files a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.po b/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.po deleted file mode 100644 index 922c71f0..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/languages/comments-plus-ru_RU.po +++ /dev/null @@ -1,427 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-10-16 22:46+0300\n" -"PO-Revision-Date: 2018-10-16 23:23+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: ru_RU\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" - -#: admin/boot.php:18 -msgid "Disable comments on the entire site" -msgstr "Отключить комментарии на всем сайте" - -#: admin/boot.php:24 admin/pages/comments.php:127 -msgid "Select post types" -msgstr "Выбрать тип записи" - -#: admin/boot.php:29 admin/pages/comments.php:167 -msgid "Replace external links in comments on the JavaScript code" -msgstr "Заменить внешние ссылки в комментариях на JavaScript код" - -#: admin/boot.php:34 admin/pages/comments.php:176 -msgid "Replace external links from comment authors on the JavaScript code" -msgstr "Заменить внешние ссылки от авторов комментариев на код JavaScript" - -#: admin/boot.php:39 -msgid "Disable X-Pingback" -msgstr "Убрать ссылку на X-Pingback и возможность спамить pingback-ами" - -#: admin/boot.php:44 admin/pages/comments.php:158 -msgid "Remove field \"site\" in comment form" -msgstr "Удаляет поле \"Сайт\" в форме комментариев" - -#: admin/boot.php:56 -msgid "One click disable all comments" -msgstr "Отключить все комментарии в один клик" - -#: admin/boot.php:77 -msgid "Get ultimate plugin free" -msgstr "Получите полную версию плагина бесплатно" - -#: admin/pages/comments.php:38 admin/pages/comments.php:92 -msgid "Disable comments" -msgstr "Отключить комментарии" - -#: admin/pages/comments.php:39 -msgid "Manage site comments" -msgstr "Упр. комментариями" - -#: admin/pages/comments.php:52 -msgid "Comments" -msgstr "Комментарии" - -#: admin/pages/comments.php:52 -msgid "General" -msgstr "Основные" - -#: admin/pages/comments.php:67 -msgid "Global disabling of comments" -msgstr "Глобальное отключение комментариев" - -#: admin/pages/comments.php:67 -msgid "" -"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." -msgstr "" -"Чем отличается эти функции от нативных функций Wordpress? Wordpress " -"отключает комментарии только для новых записей! С помощью функций ниже, вы " -"можете отключить комментарии глобально, даже для старых записей, причем вы " -"можете выбрать для каких типов записей нужно отключить комментарии. Плагин " -"также отключает сам функционал комментариев, который создает определенную " -"нагрузку на сайт." - -#: admin/pages/comments.php:94 -msgid "Not disable" -msgstr "Не отключать" - -#: admin/pages/comments.php:97 -msgid "Everywhere" -msgstr "Повсюду" - -#: admin/pages/comments.php:98 -#, php-format -msgid "" -"You can delete all comments in the database by clicking on this link (cleaning comments in database)." -msgstr "" -"Вы можете удалить все комментарии в базе данных, нажав на эту ссылку ( очистка комментариев в базе данных )." - -#: admin/pages/comments.php:102 -msgid "On certain post types" -msgstr "Только выбранные типы записей" - -#: admin/pages/comments.php:103 -#, php-format -msgid "" -"You can delete all comments for the selected post types. Select the post " -"types below and save the settings. After that, click the link (delete all comments for the selected post types in database)." -msgstr "" -"Вы можете удалить все комментарии для выбранных типов записей. Выберите типы " -"записей ниже и сохраните настройки. После этого нажмите ссылку ( удалите все комментарии для выбранных типов записей в базе данных )." - -#: admin/pages/comments.php:107 -msgid "" -"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" -msgstr "" -"Повсюду - предупреждение: этот параметр является глобальным и повлияет на " -"весь ваш сайт. Используйте его только в том случае, если вы хотите отключить " -"комментарии повсюду. " - -#: admin/pages/comments.php:107 -msgid "" -"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." -msgstr "" -"В некоторых типах сообщений - отключение комментариев также отключает " -"трекбэки и pingback. Все поля, связанные с комментариями, также будут скрыты " -"от экранов редактирования / быстрого редактирования затронутых сообщений. " -"Эти настройки нельзя переопределять для отдельных сообщений." - -#: admin/pages/comments.php:130 -msgid "Select the post types for which comments will be disabled" -msgstr "Выберите типы записей, для которых комментарии будут отключены." - -#: admin/pages/comments.php:138 -msgid "Custom post types" -msgstr "Произвольные типы записей" - -#: admin/pages/comments.php:141 -msgid "" -"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)." -msgstr "" -"Только встроенные типы записей отображаются выше. Если вы хотите отключить " -"комментарии к другим пользовательским типам записей во всей сети, вы можете " -"предоставить список типов сообщений, разделенных запятыми (используйте имя, " -"которое идентифицирует тип записей)." - -#: admin/pages/comments.php:152 -msgid "General settings for comments" -msgstr "Общие настройки комментариев" - -#: admin/pages/comments.php:152 -msgid "These settings will help you improve SEO and reduce the amount of spam." -msgstr "Эти настройки помогут вам улучшить SEO и уменьшить количество спама." - -#: admin/pages/comments.php:160 -msgid "" -"Tired of spam in the comments? Do visitors leave \"blank\" comments for the " -"sake of a link to their site?" -msgstr "" -"Надоел спам в комментариях? Посетители оставляют «пустые» комментарии ради " -"ссылки на свой сайт?" - -#: admin/pages/comments.php:160 -msgid "Removes the \"Site\" field from the comment form." -msgstr "Убирает поле «Сайт» из формы комментирования." - -#: admin/pages/comments.php:160 -msgid "" -"Works with the standard comment form, if the form is manually written in " -"your theme-it probably will not work!" -msgstr "" -"Работает со стандартной формой комментирования, если в Вашей теме форма " -"прописана вручную - скорей всего не сработает!" - -#: admin/pages/comments.php:169 -msgid "" -"Superfluous external links from comments, which can be typed from a dozen " -"and more for one article, do not bring anything good for promotion." -msgstr "" -"Внешние ссылки в комментариях, которых может быть десятки или больше на " -"одной странице, могут ухудшить продвижение вашего сайта." - -#: admin/pages/comments.php:169 -#, php-format -msgid "Replaces the links of this kind of %s, on links of this kind %s" -msgstr "" -"Заменяет ссылки %s, на span тег и устанавливает переход с помощью JavaScript " -"%s" - -#: admin/pages/comments.php:178 -msgid "" -"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." -msgstr "" -"До 90 процентов комментариев в блоге оставляют ради внешней ссылки. Не " -"поможет даже nofollow от потери веса страницы." - -#: admin/pages/comments.php:178 -msgid "" -"Replaces the links of the authors of comments on the JavaScript code, it is " -"impossible to distinguish it from usual links." -msgstr "" -"Заменяет ссылки авторов комментариев на JavaScript код, его невозможно " -"отличить от обычной ссылки." - -#: admin/pages/comments.php:178 -msgid "In some Wordpress topics this may not work." -msgstr "В некоторых темах Wordpress это может не сработать." - -#: admin/pages/comments.php:185 -msgid "Disable XML-RPC" -msgstr "Отключить XML-RPC" - -#: admin/pages/comments.php:187 -msgid "" -"A pingback is basically an automated comment that gets created when another " -"blog links to you. A self-pingback is created when you link to an article " -"within your own blog. Pingbacks are essentially nothing more than spam and " -"simply waste resources." -msgstr "" -"Pingback по-существу автоматизированных комментарий, который создается, " -"когда другой блог ссылается на вас. Self-pingback создается, когда вы " -"оставили ссылку на статью в своем блоге. Pingbacks по существу являются не " -"более чем спам и пустая трата ресурсов вашего сайта." - -#: admin/pages/comments.php:187 -msgid "Removes the server responses a reference to the xmlrpc file." -msgstr "Удаляет ссылку на xmlrpc-файл и ответ сервера." - -#: admin/pages/delete-comments.php:41 -msgid "Comments cleaner" -msgstr "Очистка комментариев" - -#: admin/pages/delete-comments.php:62 -msgid "All comments have been deleted." -msgstr "Все комментарии были удалены." - -#: admin/pages/delete-comments.php:71 -msgid "" -"An error occurred while trying to delete comments. Internal error occured. " -"Please try again later." -msgstr "" -"При попытке удалить комментарии произошла ошибка. Пожалуйста, повторите " -"попытку позже." - -#: admin/pages/delete-comments.php:211 -msgid "" -"Are you sure you want to delete comments from the database without restoring?" -msgstr "" -"Вы уверены, что вы хотите удалить комментарии из базы данных без " -"восстановления?" - -#: admin/pages/delete-comments.php:226 -msgid "Delete " -msgstr "Удалить" - -#: admin/pages/delete-comments.php:232 -msgid "Comments clearing tools" -msgstr "Комментарии очищающие инструменты" - -#: admin/pages/delete-comments.php:235 -msgid "" -"These functions can be useful for global disabling comments or bulk cleaning " -"spam comments." -msgstr "" -"Эти функции могут быть полезны для глобальных отключений комментариев или " -"массовой очистки спама комментариев." - -#: admin/pages/delete-comments.php:240 -msgid "Remove all comments" -msgstr "Удалить все комментарии" - -#: admin/pages/delete-comments.php:242 -msgid "You can delete all comments in your database with one click." -msgstr "Вы можете удалить все комментарии в базе данных с одним щелчком мыши." - -#: admin/pages/delete-comments.php:244 -msgid "Choose post types" -msgstr "Выберите типы записей" - -#: admin/pages/delete-comments.php:249 -msgid "Select all" -msgstr "Выбрать все" - -#: admin/pages/delete-comments.php:266 -#, php-format -msgid "Delete Woocommerce order notices? (%d)" -msgstr "Удалять заметки от заказов Woocommerce? (%d)" - -#: admin/pages/delete-comments.php:272 -#, php-format -msgid "Delete (%s)" -msgstr "Удалить (%s)" - -#: admin/pages/delete-comments.php:279 -msgid "Remove spam comments" -msgstr "Удалить спам комментарии" - -#: admin/pages/delete-comments.php:281 -msgid "You can remove only spam comments from the database with one click." -msgstr "" -"Вы можете одним нажатием удалить только спам комментарии из базы данных." - -#: admin/pages/delete-comments.php:283 admin/pages/delete-comments.php:290 -#: admin/pages/delete-comments.php:297 -#, php-format -msgid "Delete (%d)" -msgstr "Удалить (%d)" - -#: admin/pages/delete-comments.php:286 -msgid "Remove unapproved comments" -msgstr "Удалить неподтвержденные комментарии" - -#: admin/pages/delete-comments.php:288 -msgid "" -"You can remove only unapproved comments from the database with one click." -msgstr "" -"Вы можете одним нажатием удалить только не подтвержденные комментарии из " -"базы данных." - -#: admin/pages/delete-comments.php:293 -msgid "Remove trashed comments" -msgstr "Удалить комментарии из корзины" - -#: admin/pages/delete-comments.php:295 -msgid "You can remove only trashed comments from the database with one click." -msgstr "Вы можете одним нажатием удалить только комментарии из корзины." - -#: comments-plus.php:63 -msgid "Webcraftic Disable comments" -msgstr "Webcraftic отключить комментарии" - -#: includes/classes/class.configurate-comments.php:204 -#: includes/classes/class.configurate-comments.php:256 -msgid "Comments are closed." -msgstr "Комментарии Закрыты." - -#: includes/classes/class.configurate-comments.php:244 -#, php-format -msgid "" -"Note: The %s plugin is currently active, and comments are " -"completely disabled on: %s. Many of the settings below will not be " -"applicable for those post types." -msgstr "" -"Примечание. Плагин %s в настоящий момент активен, и комментарии " -"полностью отключены: %s. Многие из приведенных ниже настроек не будут " -"применяться для этих типов сообщений." - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Disable comments\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Отключить комментарии»!" - -#~ msgid "Recommended" -#~ msgstr "Рекомендовано" - -#~ msgid "You are not allowed to view this page." -#~ msgstr "Вам не разрешено просматривать эту страницу." - -#~ msgid "You do not have the selected post types!" -#~ msgstr "Вы не выбрали еще ни одного типа записей!" - -#~ msgid "No comments available for deletion." -#~ msgstr "Нет комментариев для удаления." - -#~ msgid "" -#~ "Are you sure that you desire to delete all comments from the database?" -#~ msgstr "Вы уверены, что хотите удалить все комментарии из базы данных?" - -#~ msgid "" -#~ "Deleting comments will remove existing comment entries in the database " -#~ "and cannot be reverted without a database backup." -#~ msgstr "" -#~ "При удалении комментариев удаляются существующие записи комментариев в " -#~ "базе данных, они не могут быть восстановлены без резервного копирования " -#~ "базы данных." - -#~ msgid "You have %s comments" -#~ msgstr "У вас есть %s комментариев" - -#~ msgid "Yes, I'm sure" -#~ msgstr "Да, я уверен" - -#~ msgid "No, return back" -#~ msgstr "Нет, вернуться" - -#~ msgid "" -#~ "Are you sure that you desire to delete all comments from the database for " -#~ "the selected post types (%s)?" -#~ msgstr "" -#~ "Вы уверены, что хотите удалить все комментарии из базы данных для " -#~ "выбранных типов записей (%s)?" - -#~ msgid "Webcraftic comments tweaks" -#~ msgstr "Webcraftic инструменты комментариев" - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Comments tweaks\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Инструменты " -#~ "комментариев»!" - -#~ msgid "Disable all comments" -#~ msgstr "Отключить все комментарии" diff --git a/wp-content/plugins/!clearfy/components/comments-plus/migrations/index.php b/wp-content/plugins/!clearfy/components/comments-plus/migrations/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/migrations/index.php +++ /dev/null @@ -1,2 +0,0 @@ -Disable comments plugin is a useful tool for blog or site administrators that allows fully disabling or hiding comments for any post types, pages or attachments. - -It removes the all comments related features and options: - -* disable comments on frontend at all; -* remove comments option from WordPress dashboard menu; -* hide comments option from the admin bar; -* Turn off comments widgets. - -In addition, this plugin can disable XML-RPC related functions in WordPress including disable pingbacks and disable trackbacks, and helps to prevent the attacks on the xmlrpc.php file. Lastly, it attempts to generate a “403 Denied” error for requests to the /xmlrpc.php URL, but does not affect that file or your server in any way. - -If you want completely remove comments, you can do this individually for selected post types. You can easily bulk delete all WordPress comments in some clicks. No any other “Delete All Comments” plugins or phpMyAdmin needed. - -You can disable comments but if you decide to leave them, you need to close comments external links from the search engines. By default when users places comments, the WordPress adds rel=”nofollow” attribute to the comment author URL and for all links in the comments text. However, already for a long time, search engines ignores this and follows links. It makes dozens of superfluous external links from comments that are do not bring anything good for your SEO. Disable Comments plugin makes all external links in WordPress comments invisible for search engines with Javascript and improves your blog or website SEO. - -In addition, if you do not want to disable comments you may need to remove website field from the WordPress comment form. Note: you can remove comment author URL but this feature can be not work with some themes. - -Generally, the Disable Comments plugin uses the intelligent algorithm to hide comments and remove comments. You just need to turn some toggles on. - -If you come across any bugs or have suggestions with Disable Comments, please use the plugin support forum. I cannot fix them if I do not know about! Please check the FAQ for common issues. - - -== Frequently Asked Questions == - -= Nothing happens after I disable comments on all posts – comment forms are still appears inside my posts. = - -That is because your theme is not checking the comment status of posts in the correct way. - -You may like to point your theme’s author to this explanation of what they are doing wrong, and how to fix it. - -= How can I remove the text “comments are closed” at the bottom of articles when comments are disabled? = - -The plugin tries to hide it (and any other comment-related elements) as well as possible. - -If you still see this message, it means that your theme is overrides this behavior and you will have to edit its files manually for fix it. Two common approaches are to either delete or comment out the relevant lines in wp-content/your-theme/comments.php, or to add a declaration to wp-content/your-theme/style.css that hides the message from your visitors. In either case, make know what you are doing! - -= I only want to disable comments on certain posts, not globally. What do I need to do? = - -Do not install this plugin! - -Go to the edit page for the post you want to disable comments. Scroll down to the “Discussion” box, where you will find the comment options for that post. If you do not see a “Discussion” box, then click on “Screen Options” at the top of your screen, and make sure the “Discussion” checkbox is checked. - -You can also bulk-edit the comment status of multiple posts from the posts screen. - -= I want to delete comments from my database. What do I need to do? = - -When you will change the plugin settings, you will be prompt to delete comments from the database. - -== Details == - -The Disable Comments plugin allows you completely disable the commenting feature in WordPress. When this option is on you will get the following changes: - -* Easy Enable or disable Comments; -* Disable comments globally; -* Disable comments on certain Pages; -* Disable comments on posts Only; -* Disable comments on pages Only; -* Disable comments for any post types; -* Disable comments links in the Admin Menu and Admin Bar; -* Disable comments related sections (“Recent Comments”, “Discussion” etc.) and hide from the WordPress Dashboard; -* Disable comments related widgets (so your theme cannot to use them); -* Disable comments “Discussion” settings page; -* Disable comments in RSS/Atom feeds (and requests for comments RSS will be redirect to the parent post); -* Disable X-Pingback HTTP header and remove from all pages; -* Disable outgoing pingbacks; -* Making comments external links “nofollow” and invisible for search engines; -* Remove website/URL field from the comment form; -* Remove comments, Delete comments in one click. - -We recently added brand new features into the Disable Comments plugin. These are Disable X-Pingback function, Replace external links and Remove website/url comment field. - -Some functions was taken from the following popular plugins: Clearfy – disable unused features, Bulk Comments Management, Spam Comments Cleaner, Delete Comments By Status, No Page Comment, WP Disable Comments, Hide “Comments are closed”, Hide Show Comment. - -== Advanced Configuration == - -Site administrators and plugin/theme developers can modify some of the plugin’s behavior through the code: - -Define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE and set it to false to prevent the plugin from replacing theme’s comment template with an empty one. - -These definitions can be make either in your main wp-config.php or in your theme’s functions.php file. - -#### RECOMMENDED SEPARATE MODULES #### -We invite you to check out a few other related free plugins that our team has also produced that you may find especially useful: - -* [Clearfy – WordPress optimization plugin and disable ultimate tweaker](https://wordpress.org/plugins/clearfy/) -* [Disable updates, Disable automatic updates, Updates manager](https://wordpress.org/plugins/webcraftic-updates-manager/) -* [Cyrlitera – transliteration of links and file names](https://wordpress.org/plugins/cyrlitera/) -* [Cyr-to-lat reloaded – transliteration of links and file names](https://wordpress.org/plugins/cyr-and-lat/ "Cyr-to-lat reloaded") -* [Disable admin notices individually](https://wordpress.org/plugins/disable-admin-notices/ "Disable admin notices individually") -* [WordPress Assets manager, dequeue scripts, dequeue styles](https://wordpress.org/plugins/gonzales/ "WordPress Assets manager, dequeue scripts, dequeue styles") -* [Hide login page](https://wordpress.org/plugins/hide-login-page/ "Hide login page") - -== Translations == - -* English - default, always included -* Russian - -If you want to help with the translation, please contact me through this site or through the contacts inside the plugin. - -== Installation == - -1. Upload the plugin folder to the `/wp-content/plugins/` directory -2. Activate the plugin through the 'Plugins' menu in WordPress -3. The plugin settings can be accessed via the 'Settings' menu in the administration area (either your site administration for single-site installs). - -== Screenshots == -1. Control panel (General) -2. Control panel (Remove comments) - -== Changelog == -= 1.2.0 (05.12.2024) = -* Added: Compatibility with Wordpress 6.7 - -= 1.1.9 (21.03.2024) = -* Added: Compatibility with Wordpress 6.5 -* Added: Compatibility with php 8.3 - -= 1.1.8 (21.11.2023) = -* Added: Compatibility with Wordpress 6.4 -* Added: Compatibility with php 8.2 - -= 1.1.7 (22.03.2023) = -* Fixed: Freemius framework conflict -* Added: Compatibility with Wordpress 6.2 - -= 1.1.6 (30.05.2022) = -* Added: Compatibility with Wordpress 6.0 - -= 1.1.5 (23.03.2022) = -* Added: Compatibility with Disable admin notices plugin - -= 1.1.4 (23.03.2022) = -* Added: Compatibility with Wordpress 5.9 -* Fixed: Minor bugs - -= 1.1.3 (20.10.2021) = -* Added: Compatibility with Wordpress 5.8 -* Fixed: Minor bugs - -= 1.1.2 (16.12.2020) = -* Added: Subscribe form -* Fixed: Minor bugs - -= 1.1.1 = -* Added: Compatibility with Wordpress 4.2 - 5.x -* Added: Multisite support -* Fixed: Minor bugs - -= 1.0.9 = -* Fixed: Update core - -= 1.0.8 = -* Fixed: Update core -* Fixed: Small bugs -* Fixed: Translations - -= 1.0.7 = -* Fixed: Update core -* ADDED: Plugin options caching to reduce database queries for 90%. Clearfy became lighter and faster. -* ADDED: Compress and cache the plugin core files, to reduce the load on the admin panel - -= 1.0.5 = -* Added a new feature: Added page for cleaning comments -* Fixed: Bugs with Woocommerce - -= 1.0.4 = -* Update plugin core -* Fixed bug reduced plugin weight. -* Fixed JS error with external links option. -* Add french translation - -= 1.0.3 = -* Update plugin core - -= 1.0.2 = -* Fixed a bug where you selected the recommended mode, on some pages you see a white screen. Now you will not encounter this error. - -= 1.0.1 = -* Plugin release diff --git a/wp-content/plugins/!clearfy/components/comments-plus/uninstall.php b/wp-content/plugins/!clearfy/components/comments-plus/uninstall.php deleted file mode 100644 index 90b6fa8d..00000000 --- a/wp-content/plugins/!clearfy/components/comments-plus/uninstall.php +++ /dev/null @@ -1,13 +0,0 @@ -query( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE 'wbcr_comments_plus_%';" ); -$wpdb->query( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE 'wbcr_cmp_%';" ); - diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/admin/activation.php b/wp-content/plugins/!clearfy/components/cyrlitera/admin/activation.php deleted file mode 100644 index 83d760ce..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/admin/activation.php +++ /dev/null @@ -1,29 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 09.03.2018, Webcraftic - * @see Wbcr_Factory480_Activator - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WCTR_Activation extends Wbcr_Factory480_Activator { - - /** - * Runs activation actions. - * - * @since 1.0.0 - */ - public function activate() { - WCTR_Plugin::app()->updatePopulateOption( 'use_transliteration', 1 ); - WCTR_Plugin::app()->updatePopulateOption( 'use_transliteration_filename', 1 ); - WCTR_Plugin::app()->updatePopulateOption( 'filename_to_lowercase', 1 ); - } -} diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/admin/assets/js/cyrlitera-for-acf.js b/wp-content/plugins/!clearfy/components/cyrlitera/admin/assets/js/cyrlitera-for-acf.js deleted file mode 100644 index f5dc9189..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/admin/assets/js/cyrlitera-for-acf.js +++ /dev/null @@ -1,41 +0,0 @@ -jQuery(function($){ - // transliterate field-name - acf.addFilter('generate_field_object_name', function(val){ - return replace_field(val); - }); - - $(document).on('keyup change', '.acf-field .field-name', function(){ - if ( $(this).is(':focus') ){ - return false; - }else{ - var val = $(this).val(); - val = replace_field( val ); - - if ( val !== $(this).val() ) { - $(this).val(val); - } - } - - }); - function replace_field( val ){ - console.log(val); - val = $.trim(val); - if(window.cyr_and_lat_dict === undefined){ - console.error('Cyrlitera for ACF: lang dictionary not loaded!') - return val; - } - var table = window.cyr_and_lat_dict; - - $.each( table, function(k, v){ - var regex = new RegExp( k, 'g' ); - val = val.replace( regex, v ); - }); - - val = val.replace( /[^\w\d-_]/g, '' ); - val = val.replace( /_+/g, '_' ); - val = val.replace( /^_?(.*)$/g, '$1' ); - val = val.replace( /^(.*)_$/g, '$1' ); - - return val; - } -}); diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/admin/boot.php b/wp-content/plugins/!clearfy/components/cyrlitera/admin/boot.php deleted file mode 100644 index c8d072b6..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/admin/boot.php +++ /dev/null @@ -1,239 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright Webcraftic 25.05.2017 - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * @return array - */ -function wbcr_cyrlitera_install_conflict_plugins() { - $install_plugins = []; - - if ( is_plugin_active( 'wp-translitera/wp-translitera.php' ) ) { - $install_plugins[] = 'WP Translitera'; - } - - if ( is_plugin_active( 'cyr3lat/cyr-to-lat.php' ) ) { - $install_plugins[] = 'Cyr to Lat enhanced'; - } - - if ( is_plugin_active( 'cyr2lat/cyr-to-lat.php' ) ) { - $install_plugins[] = 'Cyr to Lat'; - } - - if ( is_plugin_active( 'cyr-and-lat/cyr-and-lat.php' ) ) { - $install_plugins[] = 'Cyr-And-Lat'; - } - - if ( is_plugin_active( 'rustolat/rus-to-lat.php' ) ) { - $install_plugins[] = 'RusToLat'; - } - - if ( is_plugin_active( 'rus-to-lat-advanced/ru-translit.php' ) ) { - $install_plugins[] = 'Rus filename and link translit'; - } - - return $install_plugins; -} - -/** - * @return array - */ -function wbcr_cyrlitera_get_conflict_notices_error() { - $notices = []; - $plugin_title = WCTR_Plugin::app()->getPluginTitle(); - - $default_notice = $plugin_title . ': ' . __( 'We found that you have the plugin %s installed. The functions of this plugin already exist in %s. Please deactivate plugin %s to avoid conflicts between plugins functions.', 'cyrlitera' ); - $default_notice .= ' ' . __( 'If you do not want to deactivate the plugin %s for some reason, we strongly recommend do not use the same plugins functions at the same time!', 'cyrlitera' ); - - $install_conflict_plugins = wbcr_cyrlitera_install_conflict_plugins(); - - if ( ! empty( $install_conflict_plugins ) ) { - foreach ( (array) $install_conflict_plugins as $plugin_name ) { - $notices[] = sprintf( $default_notice, $plugin_name, $plugin_title, $plugin_name, $plugin_name ); - } - } - - return $notices; -} - -add_filter( 'wbcr_clr_seo_page_warnings', 'wbcr_cyrlitera_get_conflict_notices_error' ); - -/** - * Печатает ошибки совместимости с похожими плагинами - */ -function wbcr_cyrlitera_admin_conflict_notices_error( $notices, $plugin_name ) { - if ( $plugin_name != WCTR_Plugin::app()->getPluginName() ) { - return $notices; - } - - $warnings = wbcr_cyrlitera_get_conflict_notices_error(); - - if ( empty( $warnings ) ) { - return $notices; - } - $notice_text = ''; - foreach ( (array) $warnings as $warning ) { - $notice_text .= '

      ' . $warning . '

      '; - } - - $notices[] = [ - 'id' => 'cyrlitera_plugin_compatibility', - 'type' => 'error', - 'dismissible' => true, - 'dismiss_expires' => 0, - 'text' => $notice_text - ]; - - return $notices; -} - -add_action( 'wbcr/factory/admin_notices', 'wbcr_cyrlitera_admin_conflict_notices_error', 10, 2 ); - -if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) ) { - function wbcr_cyrlitera_set_plugin_meta( $links, $file ) { - if ( $file == WCTR_PLUGIN_BASE ) { - - $url = 'https://clearfy.pro'; - - if ( get_locale() == 'ru_RU' ) { - $url = 'https://ru.clearfy.pro'; - } - - $url .= '?utm_source=wordpress.org&utm_campaign=' . WCTR_Plugin::app()->getPluginName(); - - $links[] = '' . __( 'Get ultimate plugin free', 'cyrlitera' ) . ''; - } - - return $links; - } - - add_filter( 'plugin_row_meta', 'wbcr_cyrlitera_set_plugin_meta', 10, 2 ); - - /** - * Виджет отзывов - * - * @param string $page_url - * @param string $plugin_name - * - * @return string - */ - function wbcr_cyrlitera_rating_widget_url( $page_url, $plugin_name ) { - if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) && ( $plugin_name == WCTR_Plugin::app()->getPluginName() ) ) { - return 'https://goo.gl/ecaj2V'; - } - - return $page_url; - } - - add_filter( 'wbcr_factory_pages_480_imppage_rating_widget_url', 'wbcr_cyrlitera_rating_widget_url', 10, 2 ); - - /** - * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина - * - * - Виджет с премиум рекламой - * - Виджет с рейтингом - * - Виджет с маркерами информации - */ - add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) { - if ( WCTR_Plugin::app()->getPluginName() == $plugin->getPluginName() && 'right' == $position ) { - unset( $widgets['business_suggetion'] ); - unset( $widgets['rating_widget'] ); - unset( $widgets['info_widget'] ); - } - - return $widgets; - }, 20, 3 ); -} else { - /** - * Когда в CLearfy пользователь выполняет быструю настройку "ONE CLICK SEO OPTIMIZATION", - * мы включаем транслитерацию и преобразовываем слаги для уже существующих страниц, терминов - * - * @param string $mode_name - имя режима быстрой настройки - */ - add_action( 'wbcr_clearfy_configurated_quick_mode', function ( $mode_name ) { - if ( $mode_name == 'seo_optimize' ) { - $use_transliterations = WCTR_Plugin::app()->getPopulateOption( 'use_transliteration' ); - $transliterate_existing_slugs = WCTR_Plugin::app()->getPopulateOption( 'transliterate_existing_slugs' ); - - if ( ! $use_transliterations || $transliterate_existing_slugs ) { - return; - } - - WCTR_Helper::convertExistingSlugs(); - - WCTR_Plugin::app()->updatePopulateOption( 'transliterate_existing_slugs', 1 ); - } - } ); - - function wbcr_cyrlitera_group_options( $options ) { - $install_conflict_plugins = wbcr_cyrlitera_install_conflict_plugins(); - $is_cyrilic = in_array( get_locale(), [ 'ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE' ] ); - - if ( ! empty( $install_conflict_plugins ) || ! $is_cyrilic ) { - $tags = []; - } else { - $tags = [ 'recommended', 'seo_optimize' ]; - } - - $options[] = [ - 'name' => 'use_transliteration', - 'title' => __( 'Use transliteration', 'cyrlitera' ), - 'tags' => $tags - ]; - - $options[] = [ - 'name' => 'use_force_transliteration', - 'title' => __( 'Force transliteration', 'cyrlitera' ), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'dont_use_transliteration_on_frontend', - 'title' => __( 'Don\'t use transliteration in frontend', 'cyrlitera' ), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'use_transliteration_filename', - 'title' => __( 'Convert file names', 'cyrlitera' ), - 'tags' => $tags - ]; - - $options[] = [ - 'name' => 'filename_to_lowercase', - 'title' => __( 'Convert file names into lowercase', 'cyrlitera' ), - 'tags' => $tags - ]; - - $options[] = [ - 'name' => 'redirect_from_old_urls', - 'title' => __( 'Redirection old URLs to new ones', 'cyrlitera' ), - 'tags' => [] - ]; - - $options[] = [ - 'name' => 'custom_symbols_pack', - 'title' => __( 'Character Sets', 'cyrlitera' ), - 'tags' => [] - ]; - - return $options; - } - - add_filter( "wbcr_clearfy_group_options", 'wbcr_cyrlitera_group_options' ); -} - - - - - diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/admin/index.php b/wp-content/plugins/!clearfy/components/cyrlitera/admin/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/admin/index.php +++ /dev/null @@ -1,2 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ -class WCTR_CyrliteraPage extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "transliteration"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_parent_page = "seo"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-testimonial'; - - /** - * {@inheritDoc} - * - * @var bool - */ - public $available_for_multisite = true; - - /** - * {@inheritDoc} - * - * @since 1.1.0 - * @var bool - */ - public $show_right_sidebar_in_options = true; - - /** - * WCTR_CyrliteraPage constructor. - * - * @author Alexander Kovalev - * - * @param \Wbcr_Factory480_Plugin $plugin - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'Cyrlitera', 'cyrlitera' ); - - if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) ) { - $this->internal = false; - $this->menu_target = 'options-general.php'; - $this->add_link_to_plugin_actions = true; - $this->page_parent_page = null; - $this->show_search_options_form = false; - } - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - - public function getPageTitle() { - return defined( 'LOADING_CYRLITERA_AS_ADDON' ) ? __( 'Transliteration', 'cyrlitera' ) : __( 'General', 'cyrlitera' ); - } - - /** - * Этот метод преобразовываем слаги для уже существующих страниц, терминов. Если это преобразование уже было выполнено, - * то мы больше незапускаем массовую конвертацию - */ - public function convertExistingSlugs() { - $use_transliterations = $this->plugin->getPopulateOption( 'use_transliteration' ); - $transliterate_existing_slugs = $this->plugin->getPopulateOption( 'transliterate_existing_slugs' ); - - if ( ! $use_transliterations || $transliterate_existing_slugs ) { - return; - } - - WCTR_Helper::convertExistingSlugs(); - - $this->plugin->updatePopulateOption( 'transliterate_existing_slugs', 1 ); - } - - /** - * Метод выполняется после сохранения формы настроек. Когда пользователь включает транслитерацию, - * метод запускает массовую конвертацию слагов для уже существующих страниц, - * терминов. Если это преобразование уже было выполнено, то мы больше незапускаем массовую конвертацию - */ - protected function afterFormSave() { - $this->convertExistingSlugs(); - } - - /** - * Permalinks options. - * - * @since 1.0.0 - * @return mixed[] - */ - public function getPageOptions() { - $options[] = [ - 'type' => 'html', - 'html' => '
      ' . '' . __( 'Transliteration of Cyrillic alphabet.', 'cyrlitera' ) . '' . '

      ' . __( 'Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages. Example: http://site.dev/последние-новости -> http://site.dev/poslednie-novosti', 'cyrlitera' ) . '

      ' . '
      ' - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'use_transliteration', - 'title' => __( 'Use transliteration', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ], - 'hint' => __( 'If you enable this option, all URLs of new pages, posts, tags, and categories will automatically be converted to Latin.', 'cyrlitera' ), - 'default' => false - ]; - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'use_transliteration_filename', - 'title' => __( 'Convert file names', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ], - 'hint' => __( 'This option works only for new media library files. All Cyrillic names of the downloaded files will be converted to names with Latin characters.', 'cyrlitera' ), - 'default' => false - ]; - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'use_force_transliteration', - 'title' => __( 'Force transliteration', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => sprintf( __( 'If any of your plugins affects transliteration of links and file names, you can use this option to change the plugin of %s to overwrite the changes of the other plugins.', 'cyrlitera' ), WCTR_Plugin::app()->getPluginTitle() ), - 'default' => false - ]; - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'filename_to_lowercase', - 'title' => __( 'Convert file names into lowercase', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ], - 'hint' => __( 'This function works only for new upload files. Example: File_Name.jpg -> file_name.jpg', 'cyrlitera' ), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'redirect_from_old_urls', - 'title' => __( 'Redirection old URLs to new ones', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'If at the time of the plugin installation you had pages with unconverted links, use this option to redirect users from old to new URLs with the Latin alphabet.', 'cyrlitera' ), - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'dont_use_transliteration_on_frontend', - 'title' => __( 'Don\'t use transliteration in frontend', 'cyrlitera' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'Enable when have a problem in frontend.', 'cyrlitera' ), - 'default' => false - ]; - - $options[] = [ - 'type' => 'textarea', - 'way' => 'buttons', - 'name' => 'custom_symbols_pack', - 'title' => __( 'Character Sets', 'cyrlitera' ), - 'hint' => __( 'You can supplement current base of transliteration characters. Write pairs of values separated by commas. Example:', 'cyrlitera' ) . ' Ё=Jo,ё=jo,Ж=Zh,ж=zh' - ]; - - // Произвольный html код - $options[] = [ - 'type' => 'html', // тип элемента формы - 'html' => [ $this, 'rollbackButton' ] - ]; - - $formOptions = []; - - $formOptions[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters( 'wbcr_cyrlitera_general_form_options', $formOptions, $this ); - } - - /** - * @param $html_builder Wbcr_FactoryForms480_Html - */ - public function rollbackButton( $html_builder ) { - $form_name = $html_builder->getFormName(); - - $rollback = false; - $convert_now = false; - - if ( isset( $_POST['wbcr_cyrlitera_rollback_action'] ) ) { - check_admin_referer( $form_name, 'wbcr_cyrlitera_rollback_nonce' ); - - if ( WCTR_Plugin::app()->isNetworkActive() ) { - foreach ( WCTR_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - WCTR_Helper::rollbackUrlChanges(); - restore_current_blog(); - } - } else { - WCTR_Helper::rollbackUrlChanges(); - } - - $rollback = true; - } - - if ( isset( $_POST['wbcr_cyrlitera_convert_now_action'] ) ) { - check_admin_referer( $form_name, 'wbcr_cyrlitera_convert_now_nonce' ); - - if ( WCTR_Plugin::app()->isNetworkActive() ) { - foreach ( WCTR_Plugin::app()->getActiveSites() as $site ) { - switch_to_blog( $site->blog_id ); - WCTR_Helper::convertExistingSlugs(); - restore_current_blog(); - } - } else { - WCTR_Helper::convertExistingSlugs(); - } - - $convert_now = true; - } - - ?> -
      - -
      -
      -
      - - - -
      - -
      -
      -
      -
      -
      - -
      -
      -
      - - - -
      - -
      -
      -
      -
      - , Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - */ -class WCTR_MoreFeaturesPage extends \WBCR\Factory_Templates_134\Pages\MoreFeatures { - -} diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/admin/pages/index.php b/wp-content/plugins/!clearfy/components/cyrlitera/admin/pages/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/admin/pages/index.php +++ /dev/null @@ -1,2 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( ! defined( 'WCTR_PLUGIN_ACTIVE' ) ) { - define( 'WCTR_PLUGIN_VERSION', '1.2.0' ); - define( 'WCTR_TEXT_DOMAIN', 'cyrlitera' ); - define( 'WCTR_PLUGIN_ACTIVE', true ); - - // Этот плагин загружен, как аддон для плагина Clearfy - define( 'LOADING_CYRLITERA_AS_ADDON', true ); - - if ( ! defined( 'WCTR_PLUGIN_DIR' ) ) { - define( 'WCTR_PLUGIN_DIR', dirname( __FILE__ ) ); - } - - if ( ! defined( 'WCTR_PLUGIN_BASE' ) ) { - define( 'WCTR_PLUGIN_BASE', plugin_basename( __FILE__ ) ); - } - - if ( ! defined( 'WCTR_PLUGIN_URL' ) ) { - define( 'WCTR_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - } - - try { - // Global scripts - require_once( WCTR_PLUGIN_DIR . '/includes/class-helpers.php' ); - require_once( WCTR_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' ); - new WCTR_Plugin(); - } catch( Exception $e ) { - $wctr_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Cyrlitera', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wctr_plugin_error_func ); - add_action( 'network_admin_notices', $wctr_plugin_error_func ); - } -} - - diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/cyrlitera.php b/wp-content/plugins/!clearfy/components/cyrlitera/cyrlitera.php deleted file mode 100644 index a64d4b39..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/cyrlitera.php +++ /dev/null @@ -1,138 +0,0 @@ - - * Version: 1.2.0 - * Text Domain: cyrlitera - * Domain Path: /languages/ - * Author URI: https://webcraftic.com - * Framework Version: FACTORY_480_VERSION - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Developers who contributions in the development plugin: - * - * Alexander Kovalev - * --------------------------------------------------------------------------------- - * Full plugin development. - * - * Email: alex.kovalevv@gmail.com - * Personal card: https://alexkovalevv.github.io - * Personal repo: https://github.com/alexkovalevv - * --------------------------------------------------------------------------------- - */ - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' ); - -// @formatter:off -$wctr_plugin_info = [ - 'prefix' => 'wbcr_cyrlitera_', - 'plugin_name' => 'wbcr_cyrlitera', - 'plugin_title' => 'Webcraftic Cyrlitera', - - // PLUGIN SUPPORT - 'support_details' => [ - 'url' => 'https://webcraftic.com', - 'pages_map' => [ - 'support' => 'support', // {site}/support - 'docs' => 'docs' // {site}/docs - ] - ], - - // PLUGIN SUBSCRIBE FORM - 'subscribe_widget' => true, - 'subscribe_settings' => [ 'group_id' => '105408892' ], - - // PLUGIN ADVERTS - 'render_adverts' => true, - 'adverts_settings' => [ - 'dashboard_widget' => true, // show dashboard widget (default: false) - 'right_sidebar' => true, // show adverts sidebar (default: false) - 'notice' => true, // show notice message (default: false) - ], - - // FRAMEWORK MODULES - 'load_factory_modules' => [ - [ 'libs/factory/bootstrap', 'factory_bootstrap_482', 'admin' ], - [ 'libs/factory/forms', 'factory_forms_480', 'admin' ], - [ 'libs/factory/pages', 'factory_pages_480', 'admin' ], - [ 'libs/factory/templates', 'factory_templates_134', 'all' ], - [ 'libs/factory/adverts', 'factory_adverts_159', 'admin' ] - ] -]; - -$wctr_compatibility = new Wbcr_Factory480_Requirements( __FILE__, array_merge( $wctr_plugin_info, [ - 'plugin_already_activate' => defined( 'WCTR_PLUGIN_ACTIVE' ), - 'required_php_version' => '5.4', - 'required_wp_version' => '4.2.0', - 'required_clearfy_check_component' => false -] ) ); - -/** - * If the plugin is compatible, then it will continue its work, otherwise it will be stopped, - * and the user will throw a warning. - */ -if ( ! $wctr_compatibility->check() ) { - return; -} - -/** - * ----------------------------------------------------------------------------- - * CONSTANTS - * Install frequently used constants and constants for debugging, which will be - * removed after compiling the plugin. - * ----------------------------------------------------------------------------- - */ - -// This plugin is activated -define( 'WCTR_PLUGIN_ACTIVE', true ); -define( 'WCTR_PLUGIN_VERSION', $wctr_compatibility->get_plugin_version() ); -define( 'WCTR_PLUGIN_DIR', dirname( __FILE__ ) ); -define( 'WCTR_PLUGIN_BASE', plugin_basename( __FILE__ ) ); -define( 'WCTR_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - - - -/** - * ----------------------------------------------------------------------------- - * PLUGIN INIT - * ----------------------------------------------------------------------------- - */ - -require_once( WCTR_PLUGIN_DIR . '/libs/factory/core/boot.php' ); -require_once( WCTR_PLUGIN_DIR . '/includes/class-helpers.php' ); -require_once( WCTR_PLUGIN_DIR . '/includes/class-plugin.php' ); - -try { - new WCTR_Plugin( __FILE__, array_merge( $wctr_plugin_info, [ - 'plugin_version' => WCTR_PLUGIN_VERSION, - 'plugin_text_domain' => $wctr_compatibility->get_text_domain(), - ] ) ); -} catch ( Exception $e ) { - // Plugin wasn't initialized due to an error - define( 'WCTR_PLUGIN_THROW_ERROR', true ); - - $wctr_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Cyrlitera', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wctr_plugin_error_func ); - add_action( 'network_admin_notices', $wctr_plugin_error_func ); -} -// @formatter:on \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/class-clearfy-plugin.php b/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/class-clearfy-plugin.php deleted file mode 100644 index 5e1bfad0..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/class-clearfy-plugin.php +++ /dev/null @@ -1,93 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ -class WCTR_Plugin { - - /** - * @see self::app() - * @var WCL_Plugin - */ - private static $app; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct() { - if ( ! class_exists( 'WCL_Plugin' ) ) { - throw new Exception( 'Plugin Clearfy is not installed!' ); - } - - self::$app = WCL_Plugin::app(); - - $this->global_scripts(); - - if ( is_admin() ) { - $this->admin_scripts(); - } - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return WCL_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - * @throws \Exception - */ - private function register_pages() { - self::app()->registerPage( 'WCTR_CyrliteraPage', WCTR_PLUGIN_DIR . '/admin/pages/class-page-cyrlitera.php' ); - } - - /** - * @author Alexander Kovalev - * @throws \Exception - */ - private function admin_scripts() { - require_once( WCTR_PLUGIN_DIR . '/admin/boot.php' ); - } - - /** - * @author Alexander Kovalev - */ - private function global_scripts() { - require_once( WCTR_PLUGIN_DIR . '/includes/classes/class-configurate-cyrlitera.php' ); - new WCTR_ConfigurateCyrlitera( self::$app ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/index.php b/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/includes/3rd-party/index.php +++ /dev/null @@ -1,2 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2017 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WCTR_Helper { - - public static function transliterate( $title, $ignore_special_symbols = false ) { - $origin_title = $title; - $iso9_table = self::getSymbolsPack(); - - $title = urldecode( $title ); - $title = strtr( $title, $iso9_table ); - - if ( function_exists( 'iconv' ) ) { - $title = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $title ); - } - - if ( ! $ignore_special_symbols ) { - $title = preg_replace( "/[^A-Za-z0-9'_\-\.]/", '-', $title ); - $title = preg_replace( '/\-+/', '-', $title ); - $title = preg_replace( '/^-+/', '', $title ); - $title = preg_replace( '/-+$/', '', $title ); - } - - return apply_filters( 'wbcr_cyrlitera_transliterate', $title, $origin_title, $iso9_table ); - } - - /** - * @param string $title обработанный заголовок - * - * @return mixed|string - */ - public static function sanitizeTitle( $title ) { - global $wpdb; - - $origin_title = $title; - - $is_term = false; - $backtrace = debug_backtrace(); - foreach ( $backtrace as $backtrace_entry ) { - if ( $backtrace_entry['function'] == 'wp_insert_term' ) { - $is_term = true; - break; - } - } - - foreach ( $backtrace as $backtrace_entry ) { - if ( isset( $backtrace_entry['function'] ) && isset( $backtrace_entry['class'] ) ) { - - # WOOCOMMERCE FIXES - # We need to cancel the transliteration of attributes for variable products, - # as this brings harm to users. - #------------------------------------ - /*if ( class_exists( 'WooCommerce' ) ) { - $is_woo_variations = in_array( $backtrace_entry['function'], array( - 'set_attributes', - 'output', - 'load_variations', - 'prepare_set_attributes', - 'save_attributes', - 'add_variation', - 'save_variations', - 'read_variation_attributes' - ) ) && in_array( $backtrace_entry['class'], array( - 'WC_AJAX', - 'WC_Product', - 'WC_Meta_Box_Product_Data', - 'WC_Product_Variable_Data_Store_CPT' - ) ); - - if ( $is_woo_variations ) { - return $origin_title; - } - }*/ #------------------------------------ - - # FRONTEND FIXES - #------------------------------------ - if ( ! is_admin() ) { - $is_query = in_array( $backtrace_entry['function'], [ - 'query_posts', - 'get_terms' - ] ) && in_array( $backtrace_entry['class'], [ 'WP', 'WP_Term_Query' ] ); - - if ( $is_query ) { - return $origin_title; - } - } - #------------------------------------ - } - } - - $term = $is_term ? $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM {$wpdb->terms} WHERE name = '%s'", $title ) ) : ''; - - if ( empty( $term ) ) { - $title = self::transliterate( $title ); - } else { - $title = $term; - } - - return apply_filters( 'wbcr_cyrlitera_sanitize_title', $title, $origin_title ); - } - - /** - * @return array - */ - public static function getSymbolsPack() { - $loc = get_locale(); - - $ret = [ - // russian - 'А' => 'A', - 'а' => 'a', - 'Б' => 'B', - 'б' => 'b', - 'В' => 'V', - 'в' => 'v', - 'Г' => 'G', - 'г' => 'g', - 'Д' => 'D', - 'д' => 'd', - 'Е' => 'E', - 'е' => 'e', - 'Ё' => 'Jo', - 'ё' => 'jo', - 'Ж' => 'Zh', - 'ж' => 'zh', - 'З' => 'Z', - 'з' => 'z', - 'И' => 'I', - 'и' => 'i', - 'Й' => 'J', - 'й' => 'j', - 'К' => 'K', - 'к' => 'k', - 'Л' => 'L', - 'л' => 'l', - 'М' => 'M', - 'м' => 'm', - 'Н' => 'N', - 'н' => 'n', - 'О' => 'O', - 'о' => 'o', - 'П' => 'P', - 'п' => 'p', - 'Р' => 'R', - 'р' => 'r', - 'С' => 'S', - 'с' => 's', - 'Т' => 'T', - 'т' => 't', - 'У' => 'U', - 'у' => 'u', - 'Ф' => 'F', - 'ф' => 'f', - 'Х' => 'H', - 'х' => 'h', - 'Ц' => 'C', - 'ц' => 'c', - 'Ч' => 'Ch', - 'ч' => 'ch', - 'Ш' => 'Sh', - 'ш' => 'sh', - 'Щ' => 'Shh', - 'щ' => 'shh', - 'Ъ' => '', - 'ъ' => '', - 'Ы' => 'Y', - 'ы' => 'y', - 'Ь' => '', - 'ь' => '', - 'Э' => 'Je', - 'э' => 'je', - 'Ю' => 'Ju', - 'ю' => 'ju', - 'Я' => 'Ja', - 'я' => 'ja', - // global - 'Ґ' => 'G', - 'ґ' => 'g', - 'Є' => 'Ie', - 'є' => 'ie', - 'І' => 'I', - 'і' => 'i', - 'Ї' => 'I', - 'ї' => 'i', - 'Ї' => 'i', - 'ї' => 'i', - 'Ё' => 'Jo', - 'ё' => 'jo', - 'й' => 'i', - 'Й' => 'I' - ]; - - // ukrainian - if ( $loc == 'uk' ) { - $ret = array_merge( $ret, [ - 'Г' => 'H', - 'г' => 'h', - 'И' => 'Y', - 'и' => 'y', - 'Х' => 'Kh', - 'х' => 'kh', - 'Ц' => 'Ts', - 'ц' => 'ts', - 'Щ' => 'Shch', - 'щ' => 'shch', - 'Ю' => 'Iu', - 'ю' => 'iu', - 'Я' => 'Ia', - 'я' => 'ia', - - ] ); - //bulgarian - } else if ( $loc == 'bg' || $loc == 'bg_BG' ) { - $ret = array_merge( $ret, [ - 'Щ' => 'Sht', - 'щ' => 'sht', - 'Ъ' => 'a', - 'ъ' => 'a' - ] ); - } - - if ( $loc == 'ka_GE' ) { - $ret = [ - 'ა' => 'a', - 'ბ' => 'b', - 'გ' => 'g', - 'დ' => 'd', - 'ე' => 'e', - 'ვ' => 'v', - 'ზ' => 'z', - 'თ' => 'th', - 'ი' => 'i', - 'კ' => 'k', - 'ლ' => 'l', - 'მ' => 'm', - 'ნ' => 'n', - 'ო' => 'o', - 'პ' => 'p', - 'ჟ' => 'zh', - 'რ' => 'r', - 'ს' => 's', - 'ტ' => 't', - 'უ' => 'u', - 'ფ' => 'ph', - 'ქ' => 'q', - 'ღ' => 'gh', - 'ყ' => 'qh', - 'შ' => 'sh', - 'ჩ' => 'ch', - 'ც' => 'ts', - 'ძ' => 'dz', - 'წ' => 'ts', - 'ჭ' => 'tch', - 'ხ' => 'kh', - 'ჯ' => 'j', - 'ჰ' => 'h' - ]; - } - - // Armenian - if ( $loc == 'hy' ) { - $ret = array_merge( $ret, [ - 'Ա' => 'A', - 'ա' => 'a', - 'Բ' => 'B', - 'բ' => 'b', - 'Գ' => 'G', - 'գ' => 'g', - 'Դ' => 'D', - 'դ' => 'd', - ' Ե' => ' Ye', - 'Ե' => 'E', - ' ե' => ' ye', - 'ե' => 'e', - 'Զ' => 'Z', - 'զ' => 'z', - 'Է' => 'E', - 'է' => 'e', - 'Ը' => 'Y', - 'ը' => 'y', - 'Թ' => 'T', - 'թ' => 't', - 'Ժ' => 'Zh', - 'ժ' => 'zh', - 'Ի' => 'I', - 'ի' => 'i', - 'Լ' => 'L', - 'լ' => 'l', - 'Խ' => 'KH', - 'խ' => 'kh', - 'Ծ' => 'TS', - 'ծ' => 'ts', - 'Կ' => 'K', - 'կ' => 'K', - 'Հ' => 'H', - 'հ' => 'h', - 'Ձ' => 'DZ', - 'ձ' => 'dz', - 'Ղ' => 'GH', - 'ղ' => 'gh', - 'Ճ' => 'J', - 'Ճ' => 'j', - 'Մ' => 'M', - 'մ' => 'm', - 'Յ' => 'Y', - 'յ' => 'y', - 'Ն' => 'N', - 'ն' => 'n', - 'Շ' => 'SH', - 'շ' => 'sh', - ' Ո' => 'VO', - 'Ո' => 'VO', - ' ո' => ' vo', - 'ո' => 'o', - 'Չ' => 'Ch', - 'չ' => 'ch', - 'Պ' => 'P', - 'պ' => 'p', - 'Ջ' => 'J', - 'ջ' => 'j', - 'Ռ' => 'R', - 'ռ' => 'r', - 'Ս' => 'S', - 'ս' => 's', - 'Վ' => 'V', - 'վ' => 'v', - 'Տ' => 'T', - 'տ' => 't', - 'Ր' => 'R', - 'ր' => 'r', - 'Ց' => 'C', - 'ց' => 'c', - 'Ու' => 'U', - 'ու' => 'u', - 'Փ' => 'P', - 'փ' => 'p', - 'Ք' => 'Q', - 'ք' => 'q', - 'Եվ' => 'EV', - 'և' => 'ev', - 'Օ' => 'O', - 'օ' => 'o', - 'Ֆ' => 'F', - 'ֆ' => 'f' - ] ); - } - - // Serbian - if ( $loc == 'sr_RS' ) { - $ret = array_merge( $ret, [ - "Ђ" => "DJ", - "Ж" => "Z", - "З" => "Z", - "Љ" => "LJ", - "Њ" => "NJ", - "Ш" => "S", - "Ћ" => "C", - "Ц" => "C", - "Ч" => "C", - "Џ" => "DZ", - "ђ" => "dj", - "ж" => "z", - "з" => "z", - "и" => "i", - "љ" => "lj", - "њ" => "nj", - "ш" => "s", - "ћ" => "c", - "ч" => "c", - "џ" => "dz", - "Ња" => "Nja", - "Ње" => "Nje", - "Њи" => "Nji", - "Њо" => "Njo", - "Њу" => "Nju", - "Ља" => "Lja", - "Ље" => "Lje", - "Љи" => "Lji", - "Љо" => "Ljo", - "Љу" => "Lju", - "Џа" => "Dza", - "Џе" => "Dze", - "Џи" => "Dzi", - "Џо" => "Dzo", - "Џу" => "Dzu" - ] ); - } - - $custom_rules = WCTR_Plugin::app()->getPopulateOption( 'custom_symbols_pack' ); - - if ( ! empty( $custom_rules ) ) { - $split_rules = explode( ',', $custom_rules ); - $split_rules = array_map( 'trim', $split_rules ); - - foreach ( $split_rules as $rule ) { - $split_symbols = explode( '=', $rule ); - - if ( sizeof( $split_symbols ) === 2 ) { - if ( empty( $split_symbols[0] ) ) { - continue; - } - - $ret[ $split_symbols[0] ] = $split_symbols[1]; - } - } - } - - return apply_filters( 'wbcr_cyrlitera_default_symbols_pack', $ret ); - } - - /** - * Делает откат изменений после выполнения метода convertExistingSlugs, - * этот метод не восстановливает вновь конвертированные слаги. - */ - public static function rollbackUrlChanges() { - global $wpdb; - - $posts = $wpdb->get_results( "SELECT p.ID, p.post_name, m.meta_value as old_post_name FROM {$wpdb->posts} p - LEFT JOIN {$wpdb->postmeta} m - ON p.ID = m.post_id - WHERE p.post_status - IN ('publish', 'future', 'private') AND m.meta_key='wbcr_wp_old_slug' AND m.meta_value IS NOT NULL" ); - - foreach ( (array) $posts as $post ) { - if ( $post->post_name != $post->old_post_name ) { - $wpdb->update( $wpdb->posts, [ 'post_name' => $post->old_post_name ], [ 'ID' => $post->ID ], [ '%s' ], [ '%d' ] ); - delete_post_meta( $post->ID, 'wbcr_wp_old_slug' ); - } - } - - $terms = $wpdb->get_results( "SELECT t.term_id, t.slug, o.option_value as old_term_slug FROM {$wpdb->terms} t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_wp_term_',t.term_id, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - - foreach ( (array) $terms as $term ) { - if ( $term->slug != $term->old_term_slug ) { - $wpdb->update( $wpdb->terms, [ 'slug' => $term->old_term_slug ], [ 'term_id' => $term->term_id ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_wp_term_' . $term->term_id . '_old_slug' ); - } - } - - // BuddyPress group slug - // ! slug maybe urlencoded - if ( is_plugin_active( 'buddypress/bp-loader.php' ) ) { - $groups = $wpdb->get_results( "SELECT t.id, t.name, t.slug, o.option_value as old_term_slug FROM {$wpdb->prefix}bp_groups t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_bp_groups_',t.id, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - foreach ( (array) $groups as $group ) { - if ( $group->slug != $group->old_term_slug ) { - $wpdb->update( "{$wpdb->prefix}bp_groups", [ 'slug' => $group->old_term_slug ], [ 'id' => $group->id ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_bp_groups_' . $group->id . '_old_slug' ); - } - } - } - - // Asgaros Forum - if ( is_plugin_active( 'asgaros-forum/asgaros-forum.php' ) ) { - $forums = $wpdb->get_results( "SELECT t.id, t.name, t.slug, o.option_value as old_term_slug FROM {$wpdb->prefix}forum_forums t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_asgaros_forums_',t.id, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - foreach ( (array) $forums as $forum ) { - if ( $forum->slug != $forum->old_term_slug ) { - $wpdb->update( "{$wpdb->prefix}forum_forums", [ 'slug' => $forum->old_term_slug ], [ 'id' => $forum->id ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_asgaros_forums_' . $forum->id . '_old_slug' ); - } - } - - //topic - $topics = $wpdb->get_results( "SELECT t.id, t.name, t.slug, o.option_value as old_term_slug FROM {$wpdb->prefix}forum_topics t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_asgaros_topics_',t.id, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - foreach ( (array) $topics as $topic ) { - if ( $topic->slug != $topic->old_term_slug ) { - $wpdb->update( "{$wpdb->prefix}forum_topics", [ 'slug' => $topic->old_term_slug ], [ 'id' => $topic->id ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_asgaros_topics_' . $topic->id . '_old_slug' ); - } - } - } - - // WP Foro - if ( is_plugin_active( 'wpforo/wpforo.php' ) ) { - // forums - $forums = $wpdb->get_results( "SELECT t.forumid, t.title, t.slug, o.option_value as old_term_slug FROM {$wpdb->prefix}wpforo_forums t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_wpforo_forums_',t.forumid, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - - foreach ( (array) $forums as $forum ) { - if ( $forum->slug != $forum->old_term_slug ) { - $wpdb->update( "{$wpdb->prefix}wpforo_forums", [ 'slug' => $forum->old_term_slug ], [ 'forumid' => $forum->forumid ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_wpforo_forums_' . $topic->id . '_old_slug' ); - } - } - - // topics - $topics = $wpdb->get_results( "SELECT t.topicid, t.title, t.slug, o.option_value as old_term_slug FROM {$wpdb->prefix}wpforo_topics t - LEFT JOIN {$wpdb->options} o - ON o.option_name=concat('wbcr_wpforo_topics_',t.topicid, '_old_slug') - WHERE o.option_value IS NOT NULL" ); - - foreach ( (array) $topics as $topic ) { - if ( $topic->slug != $topic->old_term_slug ) { - $wpdb->update( "{$wpdb->prefix}wpforo_topics", [ 'slug' => $topic->old_term_slug ], [ 'topicid' => $topic->topicid ], [ '%s' ], [ '%d' ] ); - delete_option( 'wbcr_wpforo_topics_' . $topic->id . '_old_slug' ); - } - } - - // clear cache - WPF()->phrase->clear_cache(); - WPF()->member->clear_db_cache(); - wpforo_clean_cache(); - } - } - - /** - * Массово конвертирует слаги для страниц, записей, терминов и т.д. - * Делает бекап старого слага, чтобы можно было восстановить его. А также использовать в других плагинах. - */ - public static function convertExistingSlugs() { - global $wpdb; - - $posts = $wpdb->get_results( "SELECT ID, post_name FROM {$wpdb->posts} - WHERE post_name REGEXP('[^_A-Za-z0-9\-]+') AND post_status IN ('publish', 'future', 'private')" ); - - foreach ( (array) $posts as $post ) { - $sanitized_name = WCTR_Helper::sanitizeTitle( urldecode( $post->post_name ) ); - - if ( $post->post_name != $sanitized_name ) { - add_post_meta( $post->ID, 'wbcr_wp_old_slug', $post->post_name ); - - $wpdb->update( $wpdb->posts, [ 'post_name' => $sanitized_name ], [ 'ID' => $post->ID ], [ '%s' ], [ '%d' ] ); - } - } - - $terms = $wpdb->get_results( "SELECT term_id, slug FROM {$wpdb->terms} WHERE slug REGEXP('[^_A-Za-z0-9\-]+')" ); - - foreach ( (array) $terms as $term ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $term->slug ) ); - - if ( $term->slug != $sanitized_slug ) { - update_option( 'wbcr_wp_term_' . $term->term_id . '_old_slug', $term->slug, false ); - $wpdb->update( $wpdb->terms, [ 'slug' => $sanitized_slug ], [ 'term_id' => $term->term_id ], [ '%s' ], [ '%d' ] ); - } - } - - // BuddyPress group slug - // ! slug maybe urlencoded - if ( is_plugin_active( 'buddypress/bp-loader.php' ) ) { - - $groups = $wpdb->get_results( "SELECT `id`, `name`, `slug` FROM {$wpdb->prefix}bp_groups WHERE slug REGEXP('%|[^_A-Za-z0-9\-]+')" ); - if ( is_array( $groups ) ) { - foreach ( $groups as $group ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $group->slug ) ); - if ( $group->slug != $sanitized_slug ) { - update_option( 'wbcr_bp_groups_' . $group->id . '_old_slug', $group->slug, false ); - $wpdb->update( $wpdb->prefix . 'bp_groups', [ 'slug' => $sanitized_slug ], [ 'id' => $group->id ], [ '%s' ], [ '%d' ] ); - } - } - } - } - - // Asgaros Forum - if ( is_plugin_active( 'asgaros-forum/asgaros-forum.php' ) ) { - // forum slug - $groups = $wpdb->get_results( "SELECT `id`, `name`, `slug` FROM {$wpdb->prefix}forum_forums WHERE slug REGEXP('%|[^_A-Za-z0-9\-]+')" ); - if ( is_array( $groups ) ) { - foreach ( $groups as $group ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $group->slug ) ); - if ( $group->slug != $sanitized_slug ) { - update_option( 'wbcr_asgaros_forums_' . $group->id . '_old_slug', $group->slug, false ); - $wpdb->update( $wpdb->prefix . 'forum_forums', [ 'slug' => $sanitized_slug ], [ 'id' => $group->id ], [ '%s' ], [ '%d' ] ); - } - } - } - // topic slug - $groups = $wpdb->get_results( "SELECT `id`, `name`, `slug` FROM {$wpdb->prefix}forum_topics WHERE slug REGEXP('%|[^_A-Za-z0-9\-]+')" ); - if ( is_array( $groups ) ) { - foreach ( $groups as $group ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $group->slug ) ); - if ( $group->slug != $sanitized_slug ) { - update_option( 'wbcr_asgaros_topics_' . $group->id . '_old_slug', $group->slug, false ); - $wpdb->update( $wpdb->prefix . 'forum_topics', [ 'slug' => $sanitized_slug ], [ 'id' => $group->id ], [ '%s' ], [ '%d' ] ); - } - } - } - } - - // WP Foro - if ( is_plugin_active( 'wpforo/wpforo.php' ) ) { - // forum slug - $forums = $wpdb->get_results( "SELECT `forumid`, `title`, `slug` FROM {$wpdb->prefix}wpforo_forums WHERE slug REGEXP('%|[^_A-Za-z0-9\-]+')" ); - if ( is_array( $forums ) ) { - foreach ( $forums as $forum ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $forum->slug ) ); - if ( $forum->slug != $sanitized_slug ) { - update_option( 'wbcr_wpforo_forums_' . $forum->forumid . '_old_slug', $forum->slug, false ); - $wpdb->update( $wpdb->prefix . 'wpforo_forums', [ 'slug' => $sanitized_slug ], [ 'forumid' => $forum->forumid ], [ '%s' ], [ '%d' ] ); - } - } - } - - // topic slug - $topics = $wpdb->get_results( "SELECT `topicid`, `title`, `slug` FROM {$wpdb->prefix}wpforo_topics WHERE slug REGEXP('%|[^_A-Za-z0-9\-]+')" ); - if ( is_array( $topics ) ) { - foreach ( $topics as $topic ) { - $sanitized_slug = WCTR_Helper::sanitizeTitle( urldecode( $topic->slug ) ); - if ( $topic->slug != $sanitized_slug ) { - update_option( 'wbcr_wpforo_topics_' . $topic->topicid . '_old_slug', $topic->slug, false ); - $wpdb->update( $wpdb->prefix . 'wpforo_topics', [ 'slug' => $sanitized_slug ], [ 'topicid' => $topic->topicid ], [ '%s' ], [ '%d' ] ); - } - } - } - - // clear cache - WPF()->phrase->clear_cache(); - WPF()->member->clear_db_cache(); - wpforo_clean_cache(); - } - } -} diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/includes/class-plugin.php b/wp-content/plugins/!clearfy/components/cyrlitera/includes/class-plugin.php deleted file mode 100644 index f7fd2e70..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/includes/class-plugin.php +++ /dev/null @@ -1,107 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 19.02.2018, Webcraftic - */ -class WCTR_Plugin extends Wbcr_Factory480_Plugin { - - /** - * @see self::app() - * @var Wbcr_Factory480_Plugin - */ - private static $app; - - /** - * @since 1.1.0 - * @var array - */ - private $plugin_data; - - /** - * Конструктор - * - * Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app. - * Подробнее о свойстве $app см. self::app() - * - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct( $plugin_path, $data ) { - parent::__construct( $plugin_path, $data ); - - self::$app = $this; - $this->plugin_data = $data; - - $this->global_scripts(); - - if ( is_admin() ) { - $this->admin_scripts(); - } - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * Статический метод для быстрого доступа к интерфейсу плагина. - * - * Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте - * плагина, но при этом разработчик не может вносить изменения в основной класс плагина. - * - * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным - * классам. - * - * @return \Wbcr_Factory480_Plugin|\WCTR_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - */ - protected function init_activation() { - include_once( WCTR_PLUGIN_DIR . '/admin/activation.php' ); - self::app()->registerActivation( 'WCTR_Activation' ); - } - - /** - * @author Alexander Kovalev - * @since 1.0.0 - * @throws \Exception - */ - private function register_pages() { - self::app()->registerPage( 'WCTR_CyrliteraPage', WCTR_PLUGIN_DIR . '/admin/pages/class-page-cyrlitera.php' ); - self::app()->registerPage( 'WCTR_MoreFeaturesPage', WCTR_PLUGIN_DIR . '/admin/pages/class-page-more-features.php' ); - } - - /** - * @author Alexander Kovalev - * @throws \Exception - */ - private function admin_scripts() { - require_once( WCTR_PLUGIN_DIR . '/admin/boot.php' ); - - $this->init_activation(); - } - - private function global_scripts() { - require_once( WCTR_PLUGIN_DIR . '/includes/classes/class-configurate-cyrlitera.php' ); - new WCTR_ConfigurateCyrlitera( self::$app ); - } -} - diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/class-configurate-cyrlitera.php b/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/class-configurate-cyrlitera.php deleted file mode 100644 index 697fd71a..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/class-configurate-cyrlitera.php +++ /dev/null @@ -1,266 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @copyright (c) 2017 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WCTR_ConfigurateCyrlitera extends WBCR\Factory_Templates_134\Configurate { - - public function registerActionsAndFilters() { - - if ( is_admin() || ! $this->getPopulateOption( 'dont_use_transliteration_on_frontend' ) ) { - if ( $this->getPopulateOption( 'use_transliteration' ) ) { - if ( ! $this->getPopulateOption( 'use_force_transliteration' ) ) { - add_filter( 'sanitize_title', 'WCTR_Helper::sanitizeTitle', 0 ); - } else { - add_filter( 'sanitize_title', [ $this, 'forceSanitizeTitle' ], 99, 2 ); - } - - add_action( 'admin_init', [ $this, 'acfScripts' ] ); - } - } - - if ( $this->getPopulateOption( 'use_transliteration_filename' ) ) { - if ( ! $this->getPopulateOption( 'use_force_transliteration' ) ) { - add_filter( 'sanitize_file_name', [ $this, 'sanitizeFileName' ], 9 ); - } else { - add_filter( 'sanitize_file_name', [ $this, 'forceSanitizeFileName' ], 99, 2 ); - } - } - - if ( ! is_admin() ) { - add_action( 'wp', [ $this, 'redirectFromOldUrls' ], $this->wpForoIsActivated() ? 11 : 10 ); - } - - // Asgaros Forum set 404 - if ( is_plugin_active( 'asgaros-forum/asgaros-forum.php' ) ) { - add_action( 'asgarosforum_prepare_forum', [ $this, 'asgarosSet404' ] ); - add_action( 'asgarosforum_prepare_topic', [ $this, 'asgarosSet404' ] ); - } - } - - public function asgarosSet404() { - $trace = debug_backtrace(); - foreach ( $trace as $item ) { - if ( $item['function'] == 'prepare' and $item['class'] == 'AsgarosForum' and is_object( $item['object'] ) ) { - if ( ! $item['object']->parents_set ) { - if ( ! defined( 'ASGAROS_404' ) ) { - define( 'ASGAROS_404', true ); - } - } - } - } - } - - public function acfScripts() { - global $pagenow; - - $on_acf_edit_page = 'post.php' === $pagenow && isset( $_GET['post'] ) && 'acf-field-group' === get_post_type( $_GET['post'] ); - if ( is_plugin_active( 'advanced-custom-fields/acf.php' ) and $on_acf_edit_page ) { - $data = "window.cyr_and_lat_dict = " . json_encode( WCTR_Helper::getSymbolsPack() ) . ";"; - - wp_enqueue_script( 'cyrlitera-for-acf', WCTR_PLUGIN_URL . '/admin/assets/js/cyrlitera-for-acf.js', [ - 'jquery', - 'acf-field-group' - ] ); - wp_add_inline_script( 'cyrlitera-for-acf', $data, 'before' ); - } - } - - /** - * @param string $title обработанный заголовок - * @param string $raw_title не обработанный заголовок - * - * @return string - */ - public function forceSanitizeTitle( $title, $raw_title ) { - $title = WCTR_Helper::sanitizeTitle( $raw_title ); - $force_transliterate = sanitize_title_with_dashes( $title ); - - return apply_filters( 'wbcr_cyrlitera_sanitize_title', $force_transliterate, $raw_title ); - } - - /** - * @param string $title - * - * @return string - */ - public function sanitizeFileName( $filename ) { - $origin_title = $filename; - - $filename = WCTR_Helper::transliterate( $filename ); - - if ( $this->getPopulateOption( 'filename_to_lowercase' ) ) { - $filename = strtolower( $filename ); - } - - return apply_filters( 'wbcr_cyrlitera_sanitize_filename', $filename, $origin_title ); - } - - /** - * @param string $title - * - * @return string - */ - public function forceSanitizeFileName( $filename, $filename_raw ) { - $filename = $filename_raw; - - $special_chars = [ - "?", - "[", - "]", - "/", - "\\", - "=", - "<", - ">", - ":", - ";", - ",", - "'", - "\"", - "&", - "$", - "#", - "*", - "(", - ")", - "|", - "~", - "`", - "!", - "{", - "}", - "%", - "+", - chr( 0 ) - ]; - - /** - * Filters the list of characters to remove from a filename. - * - * @since 2.8.0 - * - * @param array $special_chars Characters to remove. - * @param string $filename_raw Filename as it was passed into sanitize_file_name(). - */ - $special_chars = apply_filters( 'sanitize_file_name_chars', $special_chars, $filename_raw ); - $filename = preg_replace( "#\x{00a0}#siu", ' ', $filename ); - $filename = str_replace( $special_chars, '', $filename ); - $filename = str_replace( [ '%20', '+' ], '-', $filename ); - $filename = preg_replace( '/[\r\n\t -]+/', '-', $filename ); - $filename = trim( $filename, '.-_' ); - - if ( false === strpos( $filename, '.' ) ) { - $mime_types = wp_get_mime_types(); - $filetype = wp_check_filetype( 'test.' . $filename, $mime_types ); - if ( $filetype['ext'] === $filename ) { - $filename = 'unnamed-file.' . $filetype['ext']; - } - } - - // Split the filename into a base and extension[s] - $parts = explode( '.', $filename ); - - // Return if only one extension - if ( count( $parts ) <= 2 ) { - $filename = WCTR_Helper::transliterate( $filename ); - - if ( $this->getPopulateOption( 'filename_to_lowercase' ) ) { - $filename = strtolower( $filename ); - } - - return apply_filters( 'wbcr_cyrlitera_sanitize_filename', $filename, $filename_raw ); - } - - // Process multiple extensions - $filename = array_shift( $parts ); - $extension = array_pop( $parts ); - $mimes = get_allowed_mime_types(); - - /* - * Loop over any intermediate extensions. Postfix them with a trailing underscore - * if they are a 2 - 5 character long alpha string not in the extension whitelist. - */ - foreach ( (array) $parts as $part ) { - $filename .= '.' . $part; - - if ( preg_match( "/^[a-zA-Z]{2,5}\d?$/", $part ) ) { - $allowed = false; - foreach ( $mimes as $ext_preg => $mime_match ) { - $ext_preg = '!^(' . $ext_preg . ')$!i'; - if ( preg_match( $ext_preg, $part ) ) { - $allowed = true; - break; - } - } - if ( ! $allowed ) { - $filename .= '_'; - } - } - } - $filename .= '.' . $extension; - - $filename = WCTR_Helper::transliterate( $filename ); - - if ( $this->getPopulateOption( 'filename_to_lowercase' ) ) { - $filename = strtolower( $filename ); - } - - return apply_filters( 'wbcr_cyrlitera_sanitize_filename', $filename, $filename_raw ); - } - - - /** - * @return bool - */ - protected function wpForoIsActivated() { - $activeplugins = get_option( 'active_plugins' ); - if ( gettype( $activeplugins ) != 'array' ) { - $activeplugins = []; - } - - return in_array( "wpforo/wpforo.php", $activeplugins ); - } - - /** - * Перенаправление со старых url, которые были уже преобразованы - */ - public function redirectFromOldUrls() { - if ( ! WBCR\Factory_Templates_134\Helpers::isPermalink() ) { - return; - } - $is404 = is_404(); - - if ( $this->wpForoIsActivated() ) { - global $wpforo; - if ( $is404 || $wpforo->current_object['is_404'] || ( $wpforo->current_object['template'] == 'post' and ! count( $wpforo->current_object['topic'] ) ) ) { - $is404 = true; - } - } - - if ( is_plugin_active( 'asgaros-forum/asgaros-forum.php' ) and defined( 'ASGAROS_404' ) and ASGAROS_404 === true ) { - $is404 = true; - } - - if ( $is404 ) { - if ( $this->getPopulateOption( 'redirect_from_old_urls' ) ) { - $current_url = urldecode( $_SERVER['REQUEST_URI'] ); - $new_url = WCTR_Helper::transliterate( $current_url, true ); - $new_url = strtolower( $new_url ); - - if ( $current_url != $new_url ) { - wp_redirect( $new_url, 301 ); - } - } - } - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/index.php b/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/index.php deleted file mode 100644 index 62200328..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/includes/classes/index.php +++ /dev/null @@ -1,2 +0,0 @@ -=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:77 -#, php-format -msgid "" -"We found that you have the plugin %s installed. The functions of this plugin " -"already exist in %s. Please deactivate plugin %s to avoid conflicts between " -"plugins functions." -msgstr "" -"Tienes el plugin%s instalado. Las funciones de este plugin ya existen en %s. " -"Desactive el complemento%s para evitar conflictos entre las funciones ambos." - -#: admin/boot.php:78 -#, php-format -msgid "" -"If you do not want to deactivate the plugin %s for some reason, we strongly " -"recommend do not use the same plugins functions at the same time!" -msgstr "" -"¡Si no desea desactivar el plugin %s por algún motivo, recomendamos nos usar " -"funciones similares de otros Plugins al mismo tiempo!." - -#: admin/boot.php:138 admin/pages/cyrlitera.php:103 -msgid "Use transliteration" -msgstr "Usar transliteracion" - -#: admin/boot.php:144 admin/pages/cyrlitera.php:121 -msgid "Force transliteration" -msgstr "Forzar transliterización" - -#: admin/boot.php:150 admin/pages/cyrlitera.php:150 -msgid "Don't use transliteration in frontend" -msgstr "No uses la transliteración en la interfaz." - -#: admin/boot.php:156 admin/pages/cyrlitera.php:112 -msgid "Convert file names" -msgstr "Convertir nombres de archivos" - -#: admin/boot.php:162 admin/pages/cyrlitera.php:130 -msgid "Convert file names into lowercase" -msgstr "Convertir nombres de archivos a minúsculas" - -#: admin/boot.php:168 admin/pages/cyrlitera.php:140 -msgid "Redirection old URLs to new ones" -msgstr "Redireccionar las URL antiguas a nuevas." - -#: admin/boot.php:174 admin/pages/cyrlitera.php:160 -msgid "Character Sets" -msgstr "Conjuntos de caracteres" - -#: admin/boot.php:195 -msgid "Get ultimate plugin free" -msgstr "Obtener el ultimate plugin gratis" - -#: admin/pages/cyrlitera.php:39 admin/pages/cyrlitera.php:55 -msgid "Transliteration" -msgstr "Transliterización" - -#: admin/pages/cyrlitera.php:55 -msgid "General" -msgstr "General" - -#: admin/pages/cyrlitera.php:96 -msgid "Transliteration of Cyrillic alphabet." -msgstr "Transliteración del alfabeto Cirílico." - -#: admin/pages/cyrlitera.php:96 -msgid "" -"Converts Cyrillic permalinks of post, pages, taxonomies and media files to " -"the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian " -"languages. Example: http://site.dev/последние-новости -> http://site.dev/" -"poslednie-novosti" -msgstr "" -"Convierte los enlaces cirílicos de publicaciones, páginas, taxonomías y " -"archivos multimedia al alfabeto latino. Soporta idiomas ruso, ucraniano, " -"georgiano, búlgaro. Ejemplo: http://site.dev/последние-новости -> http://" -"site.dev/poslednie-novosti" - -#: admin/pages/cyrlitera.php:105 -msgid "" -"If you enable this option, all URLs of new pages, posts, tags, and " -"categories will automatically be converted to Latin." -msgstr "" -"Si habilita esta opción, todas las URL de las nuevas páginas, publicaciones, " -"etiquetas y categorías se convertirán automáticamente al latín." - -#: admin/pages/cyrlitera.php:114 -msgid "" -"This option works only for new media library files. All Cyrillic names of " -"the downloaded files will be converted to names with Latin characters." -msgstr "" -"Esta opción funciona solo para nuevos archivos de la biblioteca de medios. " -"Todos los nombres cirílicos de los archivos descargados se convertirán en " -"nombres con caracteres latinos." - -#: admin/pages/cyrlitera.php:123 -#, php-format -msgid "" -"If any of your plugins affects transliteration of links and file names, you " -"can use this option to change the plugin of %s to overwrite the changes of " -"the other plugins." -msgstr "" -"Si alguno de sus plugins afecta la transliteración de enlaces y nombres de " -"archivos, use esta opción para cambiar el plugin de %s y sobrescribir los " -"cambios de los otros complementos." - -#: admin/pages/cyrlitera.php:132 -msgid "" -"This function works only for new upload files. Example: File_Name.jpg -> " -"file_name.jpg" -msgstr "" -"Esta función solo trabaja para nuevas cargas de archivos. Ejemplo: " -"Nombre_Archivo.jpg -> nombre_archivo.jpg" - -#: admin/pages/cyrlitera.php:142 -msgid "" -"If at the time of the plugin installation you had pages with unconverted " -"links, use this option to redirect users from old to new URLs with the Latin " -"alphabet." -msgstr "" -"Si en el momento de la instalación del plugin tenía páginas con enlaces no " -"convertidos, use esta opción para redirigir a los usuarios de URL antiguas a " -"nuevas con alfabeto Latino." - -#: admin/pages/cyrlitera.php:152 -msgid "Enable when have a problem in frontend." -msgstr "Habilite cuando exista problemas en la interfaz." - -#: admin/pages/cyrlitera.php:161 -msgid "" -"You can supplement current base of transliteration characters. Write pairs " -"of values separated by commas. Example:" -msgstr "" -"Puede complementar la base actual de caracteres de transliteración. Escribe " -"pares de valores separados por comas. Ejemplo:" - -#: admin/pages/cyrlitera.php:227 -msgid "" -"If at the time of the plugin installation you already had posts, pages, tags " -"and categories, click on this button and the plugin will automatically " -"convert URLs into Latin. Attention! Previously uploaded files will not be " -"converted." -msgstr "" -"Si en el momento de la instalación del plugin ya tenía publicaciones, " -"páginas, etiquetas y categorías, haga clic en este botón y el plugin " -"convertirá automáticamente las URL en Latín. ¡Atención! Los archivos " -"cargados previamente no se convertirán." - -#: admin/pages/cyrlitera.php:236 -msgid "Convert already created posts and categories" -msgstr "Convertir publicaciones y categorías ya creados" - -#: admin/pages/cyrlitera.php:238 -msgid "Url of old posts, pages,terms,tags successfully converted into Latin!" -msgstr "" -"URL de entradas antiguas, páginas, términos y etiquetas convertidas con " -"éxito al Latín!" - -#: admin/pages/cyrlitera.php:248 -msgid "" -"Allows you to restore converted URLs by using the \"Convert already created " -"posts and categories\" button. This can be useful in case of incorrect URLs " -"or incorrect transliteration of some characters. You can roll back changes " -"and advance the character sets above to correct the plugin's work. " -msgstr "" -"Le permite restaurar las URL convertidas usando el botón \"Convertir las " -"publicaciones y categorías ya creadas\". Esto es útil en caso de URL " -"incorrectas o transliteración incorrecta de algunos caractéres. Puede " -"revertir los cambios y avanzar los conjuntos de caractéres anteriores para " -"corregir el trabajo del plugin." - -#: admin/pages/cyrlitera.php:257 -msgid "Rollback changes" -msgstr "Revertir cambios" - -#: admin/pages/cyrlitera.php:259 -msgid "The rollback of new changes was successful!" -msgstr "¡La reversión de nuevos cambios fue exitosa!" - -#: cyrlitera.php:85 -msgid "Webcraftic Cyrlitera" -msgstr "Webcraftic Cyrlitera" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.mo b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.mo deleted file mode 100644 index 8d863c49..00000000 Binary files a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.po b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.po deleted file mode 100644 index b134e674..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-nl_BE.po +++ /dev/null @@ -1,208 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Clearfy\n" -"POT-Creation-Date: 2018-09-06 18:29+0300\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: nl_BE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:56 -#, php-format -msgid "" -"We found that you have the plugin %s installed. The functions of this plugin " -"already exist in %s. Please deactivate plugin %s to avoid conflicts between " -"plugins functions." -msgstr "" - -#: admin/boot.php:57 -#, php-format -msgid "" -"If you do not want to deactivate the plugin %s for some reason, we strongly " -"recommend do not use the same plugins functions at the same time!" -msgstr "" -"Als u de plugin %s om eender welke reden niet wilt deactiveren, raden wij u " -"ten zeerste aan om niet dezelfde plugin functies tegelijkertijd te gebruiken!" - -#: admin/boot.php:117 admin/options.php:30 -msgid "Use transliteration" -msgstr "Gebruik transliteratie" - -#: admin/boot.php:123 admin/options.php:48 -msgid "Force transliteration" -msgstr "Forceer transliteratie" - -#: admin/boot.php:129 admin/options.php:78 -msgid "Don't use transliteration in frontend" -msgstr "" - -#: admin/boot.php:135 admin/options.php:39 -msgid "Convert file names" -msgstr "Bestandsnamen converteren" - -#: admin/boot.php:141 admin/options.php:58 -msgid "Convert file names into lowercase" -msgstr "Bestandsnamen converteren naar kleine letters" - -#: admin/boot.php:147 admin/options.php:68 -msgid "Redirection old URLs to new ones" -msgstr "Redirect oude URL's naar nieuwe" - -#: admin/boot.php:153 admin/options.php:88 -msgid "Character Sets" -msgstr "Tekensets" - -#: admin/boot.php:174 -msgid "Get ultimate plugin free" -msgstr "Krijg ultieme plugin gratis" - -#: admin/options.php:23 -msgid "Transliteration of Cyrillic alphabet." -msgstr "Transliteratie van Cyrillische alfabet." - -#: admin/options.php:23 -msgid "" -"Converts Cyrillic permalinks of post, pages, taxonomies and media files to the " -"Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages. " -"Example: http://site.dev/последние-новости -> http://site.dev/poslednie-novosti" -msgstr "" -"Converteert Cyrillische permalinks van post, pagina's, taxonomieën en " -"mediabestanden naar het Latijnse alfabet. Ondersteunt Russische, Oekraïense, " -"Georgische, Bulgaarse talen. Voorbeeld: http://site.dev/последнивости -> " -"http://site.dev/poslednie-novosti" - -#: admin/options.php:32 -msgid "" -"If you enable this option, all URLs of new pages, posts, tags, and categories " -"will automatically be converted to Latin." -msgstr "" -"Als u deze optie inschakelt, worden alle URL's van nieuwe pagina's, berichten, " -"tags en categorieën automatisch geconverteerd naar het Latijn." - -#: admin/options.php:41 -msgid "" -"This option works only for new media library files. All Cyrillic names of the " -"downloaded files will be converted to names with Latin characters." -msgstr "" -"Deze optie werkt alleen voor nieuwe mediabibliotheek bestanden. Alle " -"Cyrillische namen van de gedownloade bestanden worden geconverteerd naar namen " -"met Latijnse tekens." - -#: admin/options.php:50 -#, php-format -msgid "" -"If any of your plugins affects transliteration of links and file names, you " -"can use this option to change the plugin of %s to overwrite the changes of the " -"other plugins." -msgstr "" -"Als één van uw plugins de transliteratie van koppelingen en bestandsnamen " -"beïnvloedt, kunt u deze optie gebruiken om de plugin van %s te wijzigen om de " -"wijzigingen van de andere plugins te overschrijven." - -#: admin/options.php:60 -msgid "" -"This function works only for new upload files. Example: File_Name.jpg -> " -"file_name.jpg" -msgstr "" -"Deze functie werkt alleen voor nieuwe uploadbestanden. Voorbeeld: File_Name." -"jpg -> file_name.jpg" - -#: admin/options.php:70 -msgid "" -"If at the time of the plugin installation you had pages with unconverted " -"links, use this option to redirect users from old to new URLs with the Latin " -"alphabet." -msgstr "" -"Als u op het moment van de installatie van de plugin pagina's had met niet-" -"geconverteerde links, gebruikt u deze optie om gebruikers om te leiden van " -"oude naar nieuwe URL's met het Latijnse alfabet." - -#: admin/options.php:80 -msgid "Enable when have a problem in frontend." -msgstr "" - -#: admin/options.php:89 -msgid "" -"You can supplement current base of transliteration characters. Write pairs of " -"values separated by commas. Example:" -msgstr "" -"U kunt de huidige basis van transliteratie tekens aanvullen. Schrijf paren van " -"waardes gescheiden door komma's. Voorbeeld:" - -#: admin/options.php:178 -msgid "" -"If at the time of the plugin installation you already had posts, pages, tags " -"and categories, click on this button and the plugin will automatically convert " -"URLs into Latin. Attention! Previously uploaded files will not be converted." -msgstr "" -"Als u tijdens de installatie van de plugin al berichten, pagina's, tags en " -"categorieën had, klik dan op deze knop en de plugin converteert URL's " -"automatisch naar Latijn. Aandacht! Eerder geüploade bestanden worden niet " -"geconverteerd." - -#: admin/options.php:187 -msgid "Convert already created posts and categories" -msgstr "Converteer eerder gemaakte berichten en categorieën" - -#: admin/options.php:189 -msgid "Url of old posts, pages,terms,tags successfully converted into Latin!" -msgstr "Url van oude berichten, pagina's, voorwaarden, tags omgezet in Latijn!" - -#: admin/options.php:199 -msgid "" -"Allows you to restore converted URLs by using the \"Convert already created " -"posts and categories\" button. This can be useful in case of incorrect URLs or " -"incorrect transliteration of some characters. You can roll back changes and " -"advance the character sets above to correct the plugin's work. " -msgstr "" -"Hiermee kunt u geconverteerde URL's herstellen met behulp van de knop " -"\"Bestaande berichten en categorieën converteren\". Dit kan handig zijn in het " -"geval van onjuiste URL's of onjuiste transliteratie van sommige tekens. U kunt " -"wijzigingen terugdraaien en de tekensets hierboven verbeteren om het werk van " -"de plugin te corrigeren." - -#: admin/options.php:208 -msgid "Rollback changes" -msgstr "Wijzigingen terugdraaien" - -#: admin/options.php:210 -msgid "The rollback of new changes was successful!" -msgstr "Het terugdraaien van nieuwe wijzigingen was succesvol!" - -#: admin/pages/cyrlitera.php:33 admin/pages/cyrlitera.php:49 -msgid "Transliteration" -msgstr "Transliteratie" - -#: admin/pages/cyrlitera.php:50 -msgid "General" -msgstr "Algemeen" - -#: cyrlitera.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Webcraftic Cyrlitera\"!" -msgstr "" -"We hebben vastgesteld dat de plugin \"Clearfy - niet-gebruikte functies " -"uitschakelen\" is geïnstalleerd. Deze plugin heeft reeds de functie " -"opmerkingen uitschakelen, zodat u de plugin \"Webcraftic Cyrlitera\" kunt " -"deactiveren!" - -#: cyrlitera.php:81 -msgid "Webcraftic Cyrlitera" -msgstr "Webcraftic Cyrlitera" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.mo b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.mo deleted file mode 100644 index 27bf8188..00000000 Binary files a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.po b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.po deleted file mode 100644 index f7774352..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-pt_BR.po +++ /dev/null @@ -1,210 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-09-06 18:29+0300\n" -"PO-Revision-Date: 2018-09-06 18:29+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/boot.php:56 -#, php-format -msgid "" -"We found that you have the plugin %s installed. The functions of this plugin " -"already exist in %s. Please deactivate plugin %s to avoid conflicts between " -"plugins functions." -msgstr "" -"Descobrimos que você tem o plugin %s instalado. As funções deste plugin já " -"existem em %s . Por favor, desative o plugin %s para evitar conflitos entre " -"as funções dos plugins." - -#: admin/boot.php:57 -#, php-format -msgid "" -"If you do not want to deactivate the plugin %s for some reason, we strongly " -"recommend do not use the same plugins functions at the same time!" -msgstr "" -"Se você não quiser desativar o plugin %s por algum motivo, recomendamos que " -"não use as mesmas funções de plugins ao mesmo tempo!" - -#: admin/boot.php:117 admin/options.php:30 -msgid "Use transliteration" -msgstr "Use transliteração" - -#: admin/boot.php:123 admin/options.php:48 -msgid "Force transliteration" -msgstr "Forçar transliteração" - -#: admin/boot.php:129 admin/options.php:78 -msgid "Don't use transliteration in frontend" -msgstr "" - -#: admin/boot.php:135 admin/options.php:39 -msgid "Convert file names" -msgstr "Converter nomes de arquivos" - -#: admin/boot.php:141 admin/options.php:58 -msgid "Convert file names into lowercase" -msgstr "Converter nomes de arquivos em minúsculas" - -#: admin/boot.php:147 admin/options.php:68 -msgid "Redirection old URLs to new ones" -msgstr "Redirecionar URLs antigas para novas" - -#: admin/boot.php:153 admin/options.php:88 -msgid "Character Sets" -msgstr "Conjuntos de caracteres" - -#: admin/boot.php:174 -msgid "Get ultimate plugin free" -msgstr "Obtenha o melhor plugin grátis" - -#: admin/options.php:23 -msgid "Transliteration of Cyrillic alphabet." -msgstr "Transliteração do alfabeto cirílico." - -#: admin/options.php:23 -msgid "" -"Converts Cyrillic permalinks of post, pages, taxonomies and media files to " -"the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian " -"languages. Example: http://site.dev/последние-новости -> http://site.dev/" -"poslednie-novosti" -msgstr "" -"Converte permalinks cirílicos de post, páginas, taxonomias e arquivos de " -"mídia para o alfabeto latino. Suporta as línguas russa, ucraniana, georgiana " -"e búlgara. Exemplo: http://site.dev/последние-новости -> http://site.dev/" -"poslednie-novosti" - -#: admin/options.php:32 -msgid "" -"If you enable this option, all URLs of new pages, posts, tags, and " -"categories will automatically be converted to Latin." -msgstr "" -"Se você ativar essa opção, todos os URLs de novas páginas, postagens, tags e " -"categorias serão convertidos automaticamente para o idioma latino." - -#: admin/options.php:41 -msgid "" -"This option works only for new media library files. All Cyrillic names of " -"the downloaded files will be converted to names with Latin characters." -msgstr "" -"Esta opção funciona apenas para novos arquivos de biblioteca de mídia. Todos " -"os nomes cirílicos dos arquivos baixados serão convertidos em nomes com " -"caracteres latinos." - -#: admin/options.php:50 -#, php-format -msgid "" -"If any of your plugins affects transliteration of links and file names, you " -"can use this option to change the plugin of %s to overwrite the changes of " -"the other plugins." -msgstr "" -"Se algum de seus plugins afetar a transliteração de links e nomes de " -"arquivos, você poderá usar essa opção para alterar o plug-in de %s para " -"sobrescrever as alterações dos outros plug-ins." - -#: admin/options.php:60 -msgid "" -"This function works only for new upload files. Example: File_Name.jpg -> " -"file_name.jpg" -msgstr "" -"Esta função funciona apenas para novos arquivos de upload. Exemplo: " -"File_Name.jpg -> file_name.jpg" - -#: admin/options.php:70 -msgid "" -"If at the time of the plugin installation you had pages with unconverted " -"links, use this option to redirect users from old to new URLs with the Latin " -"alphabet." -msgstr "" -"Se, no momento da instalação do plug-in, você tivesse páginas com links não " -"convertidos, use essa opção para redirecionar os usuários de URLs antigos " -"para novos com o alfabeto latino." - -#: admin/options.php:80 -msgid "Enable when have a problem in frontend." -msgstr "" - -#: admin/options.php:89 -msgid "" -"You can supplement current base of transliteration characters. Write pairs " -"of values separated by commas. Example:" -msgstr "" -"Você pode complementar a base atual de caracteres de transliteração. Escreva " -"pares de valores separados por vírgulas. Exemplo:" - -#: admin/options.php:178 -msgid "" -"If at the time of the plugin installation you already had posts, pages, tags " -"and categories, click on this button and the plugin will automatically " -"convert URLs into Latin. Attention! Previously uploaded files will not be " -"converted." -msgstr "" -"Se, no momento da instalação do plugin, você já tiver postagens, páginas, " -"tags e categorias, clique neste botão e o plug-in converterá os URLs " -"automaticamente em latim. Atenção! Os arquivos enviados anteriormente não " -"serão convertidos." - -#: admin/options.php:187 -msgid "Convert already created posts and categories" -msgstr "Converter posts e categorias já criados" - -#: admin/options.php:189 -msgid "Url of old posts, pages,terms,tags successfully converted into Latin!" -msgstr "URL de postagens, páginas, termos e tags antigos convertidos em latim." - -#: admin/options.php:199 -msgid "" -"Allows you to restore converted URLs by using the \"Convert already created " -"posts and categories\" button. This can be useful in case of incorrect URLs " -"or incorrect transliteration of some characters. You can roll back changes " -"and advance the character sets above to correct the plugin's work. " -msgstr "" -"Permite restaurar URLs convertidos usando o botão \"Converter postagens e " -"categorias já criadas \". Isso pode ser útil em caso de URLs incorretos ou " -"transliteração incorreta de alguns caracteres. Você pode reverter alterações " -"e avançar os conjuntos de caracteres acima para corrigir o trabalho do " -"plugin. " - -#: admin/options.php:208 -msgid "Rollback changes" -msgstr "Alterações de reversão" - -#: admin/options.php:210 -msgid "The rollback of new changes was successful!" -msgstr "A reversão de novas mudanças foi bem sucedida!" - -#: admin/pages/cyrlitera.php:33 admin/pages/cyrlitera.php:49 -msgid "Transliteration" -msgstr "Transliteração" - -#: admin/pages/cyrlitera.php:50 -msgid "General" -msgstr "Geral" - -#: cyrlitera.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Webcraftic Cyrlitera\"!" -msgstr "" -"Descobrimos que você tem o \"Clearfy - desativar os recursos não utilizados " -"\" plugin instalado, este plugin já tem funções de desabilitar comentários, " -"assim você pode desativar o plugin \"Webcraftic Cyrlitera \"!" - -#: cyrlitera.php:81 -msgid "Webcraftic Cyrlitera" -msgstr "Webcraftic Cyrlitera" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.mo b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.mo deleted file mode 100644 index da8ab787..00000000 Binary files a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.po b/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.po deleted file mode 100644 index 6abe7443..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/languages/cyrlitera-ru_RU.po +++ /dev/null @@ -1,618 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-10-16 22:49+0300\n" -"PO-Revision-Date: 2018-12-22 16:06+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: ru_RU\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" - -#: admin/boot.php:56 -#, php-format -msgid "" -"We found that you have the plugin %s installed. The functions of this plugin " -"already exist in %s. Please deactivate plugin %s to avoid conflicts between " -"plugins functions." -msgstr "" -"Мы обнаружили, что у вас установлен плагин %s, функции этого плагина уже " -"есть в %s. Пожалуйста, деактивируйте плагин %s во избежание конфликтов между " -"функциями плагинов." - -#: admin/boot.php:57 -#, php-format -msgid "" -"If you do not want to deactivate the plugin %s for some reason, we strongly " -"recommend do not use the same plugins functions at the same time!" -msgstr "" -"Если по какой-то причине вы не хотите деактивировать плагин %s, то мы " -"настоятельно рекомендуем не использовать похожие функции плагинов " -"одновременно!" - -#: admin/boot.php:117 admin/pages/cyrlitera.php:118 -msgid "Use transliteration" -msgstr "Использовать транслитерацию" - -#: admin/boot.php:123 admin/pages/cyrlitera.php:136 -msgid "Force transliteration" -msgstr "Принудильная траслитерация" - -#: admin/boot.php:129 admin/pages/cyrlitera.php:165 -msgid "Don't use transliteration in frontend" -msgstr "Не использовать транслитерацию на фронтенде" - -#: admin/boot.php:135 admin/pages/cyrlitera.php:127 -msgid "Convert file names" -msgstr "Конвертировать имена файлов" - -#: admin/boot.php:141 admin/pages/cyrlitera.php:145 -msgid "Convert file names into lowercase" -msgstr "Преобразовывать имена файлов в нижний регистр" - -#: admin/boot.php:147 admin/pages/cyrlitera.php:155 -msgid "Redirection old URLs to new ones" -msgstr "Перенаправление со старых URL на новые" - -#: admin/boot.php:153 admin/pages/cyrlitera.php:175 -msgid "Character Sets" -msgstr "Наборы символов" - -#: admin/boot.php:174 -msgid "Get ultimate plugin free" -msgstr "Получите полную версию плагина бесплатно" - -#: admin/pages/cyrlitera.php:39 admin/pages/cyrlitera.php:57 -msgid "Transliteration" -msgstr "Транслитерация" - -#: admin/pages/cyrlitera.php:57 -msgid "General" -msgstr "Основные" - -#: admin/pages/cyrlitera.php:111 -msgid "Transliteration of Cyrillic alphabet." -msgstr "Транслитерация кириллицы." - -#: admin/pages/cyrlitera.php:111 -msgid "" -"Converts Cyrillic permalinks of post, pages, taxonomies and media files to " -"the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian " -"languages. Example: http://site.dev/последние-новости -> http://site.dev/" -"poslednie-novosti" -msgstr "" -"Конвертирует кириллические постоянные ссылки записей, страниц, таксономий и " -"медиафайлов в латиницу. Поддерживает Русский, Украинский, Грузинский, " -"Болгарский языки. Пример: http://site.dev/последние-новости -> http://site." -"dev/poslednie-novosti" - -#: admin/pages/cyrlitera.php:120 -msgid "" -"If you enable this option, all URLs of new pages, posts, tags, and " -"categories will automatically be converted to Latin." -msgstr "" -"Если включить эту опцию, все URL новых страниц, записей, меток, рубрик будут " -"автоматически конвертироваться в латиницу." - -#: admin/pages/cyrlitera.php:129 -msgid "" -"This option works only for new media library files. All Cyrillic names of " -"the downloaded files will be converted to names with Latin characters." -msgstr "" -"Эта опция работает только для новых файлов медиа библиотеки. Все " -"кириллические имена загружаемых файлов, будут преобразованы в имена с " -"латинскими символами." - -#: admin/pages/cyrlitera.php:138 -#, php-format -msgid "" -"If any of your plugins affects transliteration of links and file names, you " -"can use this option to change the plugin of %s to overwrite the changes of " -"the other plugins." -msgstr "" -"Если какой-то из установленных у вас плагинов влияет на траслитерацию " -"постоянных ссылок и файловых имен, включите эту опцию, чтобы %s " -"перезаписывал изменения других плагинов." - -#: admin/pages/cyrlitera.php:147 -msgid "" -"This function works only for new upload files. Example: File_Name.jpg -> " -"file_name.jpg" -msgstr "" -"Эта функция работает только для новых загружаемых файлов. Пример: File_Name." -"jpg -> file_name.jpg" - -#: admin/pages/cyrlitera.php:157 -msgid "" -"If at the time of the plugin installation you had pages with unconverted " -"links, use this option to redirect users from old to new URLs with the Latin " -"alphabet." -msgstr "" -"Если на момент установки плагина у вас были страницы с не преобразованными " -"ссылками, используйте эту опцию, чтобы пользователи, перешедшие по старым " -"ссылкам, были перенаправлены на новые URL на латинице." - -#: admin/pages/cyrlitera.php:167 -msgid "Enable when have a problem in frontend." -msgstr "Включите эту опцию, если у вас есть проблемы с внешней стороны сайта." - -#: admin/pages/cyrlitera.php:176 -msgid "" -"You can supplement current base of transliteration characters. Write pairs " -"of values separated by commas. Example:" -msgstr "" -"Вы можете дополнить текущую базу символов транслитерации, пишите пары " -"значений через запятую. Пример: " - -#: admin/pages/cyrlitera.php:242 -msgid "" -"If at the time of the plugin installation you already had posts, pages, tags " -"and categories, click on this button and the plugin will automatically " -"convert URLs into Latin. Attention! Previously uploaded files will not be " -"converted." -msgstr "" -"Если на момент установки плагина у вас уже были созданы записи, страницы, " -"метки и рубрики, то нажмите на эту кнопку и плагин автоматически преобразует " -"URLы в латинские. Внимание! Ранее загруженные файлы преобразованы не будут." - -#: admin/pages/cyrlitera.php:251 -msgid "Convert already created posts and categories" -msgstr "Преобразовать уже созданные записи и рубрики" - -#: admin/pages/cyrlitera.php:253 -msgid "Url of old posts, pages,terms,tags successfully converted into Latin!" -msgstr "" -"Url старых записей, страниц, тегов и рубрик были успешно конвертированы в " -"литинские!" - -#: admin/pages/cyrlitera.php:263 -msgid "" -"Allows you to restore converted URLs by using the \"Convert already created " -"posts and categories\" button. This can be useful in case of incorrect URLs " -"or incorrect transliteration of some characters. You can roll back changes " -"and advance the character sets above to correct the plugin's work. " -msgstr "" -"Позволяет восстановить преобразованные с помощью кнопки “Преобразовать уже " -"созданные записи и рубрики” URLы. Это может быть полезно в случае появления " -"некорректных URL адресов или неправильной транслитерации определенных " -"символов. У вас есть возможность откатить изменения и изменить наборы " -"символов выше, чтобы скорректировать работу плагина." - -#: admin/pages/cyrlitera.php:272 -msgid "Rollback changes" -msgstr "Откатить изменения" - -#: admin/pages/cyrlitera.php:274 -msgid "The rollback of new changes was successful!" -msgstr "Откат новых изменений прошел успешно!" - -#: cyrlitera.php:63 -msgid "Webcraftic Cyrlitera" -msgstr "Webcraftic Cyrlitera" - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Webcraftic Cyrlitera\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Webcraftic Cyrlitera»!" - -#~ msgid "" -#~ "You can supplement current base of transliteration characters. Write " -#~ "pairs of values in lower case separated by commas. Example:" -#~ msgstr "" -#~ "Вы можете дополнить текущую базу символов транслитерации, пишите пары " -#~ "значений в нижнем регистре через запятую. Пример: ა=a,ბ=b" - -#~ msgid "" -#~ "If any of your plugins affects transliteration of links, you can use this " -#~ "option to change the plugin of %s to overwrite the changes of the other " -#~ "plugins." -#~ msgstr "" -#~ "Если какой-то из установленных у вас плагинов влияет на траслитерацию " -#~ "постоянный ссылок, включите эту опцию, чтобы %s перезаписывал изменения " -#~ "других плагинов." - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Cyrilic transliteration\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Транслитерация " -#~ "кириллицы»!" - -#~ msgid "Webcraftic cyrilic transliteration" -#~ msgstr "Webcraftic транслитерация кириллицы" - -#~ msgid "" -#~ "If you enable this option, the permanent URLs of all previously published " -#~ "posts and pages will be converted into URLs with Latin characters. All " -#~ "new pages and posts will also have a URL in the Latin alphabet." -#~ msgstr "" -#~ "Если включить эту опцию, постоянные URL всех ранее опубликованных записей " -#~ "и страниц будут преобразованы в URL с латинскими символами. Все новые " -#~ "страницы и записи, также будут иметь URL на латинице." - -#~ msgid "You don't have enough capability to edit this information." -#~ msgstr "Вы не имеете разрешения на редактирование этого!" - -#~ msgid "Undefinded notice id." -#~ msgstr "Не передан notice id." - -#~ msgid "Success" -#~ msgstr "Успешно" - -#~ msgid "Hide admin notices" -#~ msgstr "Скрыть уведомления" - -#~ msgid "Enable hidden notices in adminbar" -#~ msgstr "Включить уведомления в админбаре" - -#~ msgid "Admin notifications, Update nags" -#~ msgstr "Уведомления администратора, уведомления об обновлении Wordpress" - -#~ msgid "" -#~ "Do you know the situation, when some plugin offers you to update to " -#~ "premium, to collect technical data and shows many annoying notices? You " -#~ "are close these notices every now and again but they newly appears and " -#~ "interfere your work with WordPress. Even worse, some plugin’s authors " -#~ "delete “close” button from notices and they shows in your admin panel " -#~ "forever." -#~ msgstr "" -#~ "Вам знакома ситуация, когда какой-то плагин просит вас обновиться до " -#~ "премиум-версии, получить права на сбор данных о вашем сайте и создает " -#~ "много раздражающих уведомлений? Вы закрываете эти уведомления раз за " -#~ "разом, но они вновь появляются и мешают вашей работе с WordPress. Хуже " -#~ "того, некоторые авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и " -#~ "они висят в шапке вашей панели администратора целую вечность." - -#~ msgid "All notices" -#~ msgstr "Все уведомления" - -#~ msgid "Hide all notices globally." -#~ msgstr "Скрыть все уведомления глобально." - -#~ msgid "Only selected" -#~ msgstr "Только выбранные" - -#~ msgid "" -#~ "Hide selected notices only. You will see the link \"Hide notification " -#~ "forever\" in each notice. Push it and they will not bother you anymore." -#~ msgstr "" -#~ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите " -#~ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление " -#~ "будет скрыто навсегда и перестанет вас беспокоить." - -#~ msgid "Don't nide" -#~ msgstr "Не скрывать" - -#~ msgid "" -#~ "Do not hide notices and do not show “Hide notification forever” link for " -#~ "admin." -#~ msgstr "" -#~ "Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление " -#~ "навсегда\" в уведомлениях администратора." - -#~ msgid "" -#~ "Some plugins shows notifications about premium version, data collecting " -#~ "or promote their services. Even if you push close button (that sometimes " -#~ "are impossible), notices are shows again in some time. This option allows " -#~ "you to control notices. Hide them all or each individually. Some plugins " -#~ "shows notifications about premium version, data collecting or promote " -#~ "their services. Even if you push close button (that sometimes are " -#~ "impossible), notices are shows again in some time. This option allows you " -#~ "to control notices. Hide them all or each individually." -#~ msgstr "" -#~ "Зачастую, плагины отображают уведомления о возможности перехода на " -#~ "премиум версию, просят разрешение на сбор данных, рекламируют свои " -#~ "услуги. Даже если вы нажмете кнопку закрыть (что не всегда возможно), " -#~ "уведомления всё равно отобразятся через какое-то время. С помощью этой " -#~ "настройки, вы можете контролировать эти уведомления. Скройте их все сразу " -#~ "или каждое по отдельности." - -#~ msgid "" -#~ "By default, the plugin hides all notices, which you specified. If you " -#~ "enable this option, the plugin will collect all hidden notices and show " -#~ "them into the top admin toolbar. It will not disturb you but will allow " -#~ "to look notices at your convenience." -#~ msgstr "" -#~ "По умолчанию, плагин полностью скрывает отключенные вами уведомления. " -#~ "Если включить эту опцию, то плагин будет собирать все скрытые вами " -#~ "уведомления и выводить в верхней панели администратора. Это не будет вас " -#~ "раздражать, но и позволит просматривать уведомления, когда вам это удобно." - -#~ msgid "Push reset hidden notices if you need to show hidden notices again." -#~ msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\"" - -#~ msgid "Reset hidden notices (%s)" -#~ msgstr "Сбросить скрытые уведомления (%s)" - -#~ msgid "Hidden notices are successfully reset, now you can see them again!" -#~ msgstr "" -#~ "Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть " -#~ "их!" - -#~ msgid "Notices" -#~ msgstr "Уведомления" - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Disable admin notices\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Скрыть уведомления " -#~ "администратора»!" - -#~ msgid "Webcraftic disable admin notices" -#~ msgstr "Webcraftic отключить уведомления администратора" - -#~ msgid "Notifications %s" -#~ msgstr "Уведомления %s" - -#~ msgid "Restore notice" -#~ msgstr "Восстановить уведомление" - -#~ msgid "Hide notification forever" -#~ msgstr "Скрыть уведомление навсегда" - -#~ msgid "Hidden notices" -#~ msgstr "Скрытые уведомления" - -#~ msgid "Disable comments on the entire site" -#~ msgstr "Отключить комментарии на всем сайте" - -#~ msgid "Select post types" -#~ msgstr "Выбрать тип записи" - -#~ msgid "Replace external links in comments on the JavaScript code" -#~ msgstr "Заменить внешние ссылки в комментариях на JavaScript код" - -#~ msgid "Replace external links from comment authors on the JavaScript code" -#~ msgstr "Заменить внешние ссылки от авторов комментариев на код JavaScript" - -#~ msgid "Disable X-Pingback" -#~ msgstr "Убрать ссылку на X-Pingback и возможность спамить pingback-ами" - -#~ msgid "Remove field \"site\" in comment form" -#~ msgstr "Удаляет поле \"Сайт\" в форме комментариев" - -#~ msgid "Disable all comments" -#~ msgstr "Отключить все комментарии" - -#~ msgid "Comments" -#~ msgstr "Комментарии" - -#~ msgid "" -#~ "Hide selected notices only. You will see the link \"Hide notification " -#~ "forever\" in each notice. Push it and they will not bother you anymore. " -#~ "Push reset hidden notices (%d) if you need to show " -#~ "hidden notices again." -#~ msgstr "" -#~ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите " -#~ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление " -#~ "будет скрыто навсегда и перестанет вас беспокоить. Нажмите сбросить скрытые уведомления (%d), если вам нужно восстановить " -#~ "показ скрытых ранее уведомлений." - -#~ msgid "Webcraftic hide admin notices" -#~ msgstr "Webcraftic скрыть уведомления администратора" - -#~ msgid "Comments tweaks" -#~ msgstr "Инструменты комментариев" - -#~ msgid "All comments have been deleted." -#~ msgstr "Все комментарии были удалены." - -#~ msgid "" -#~ "An error occurred while trying to delete comments. Internal error " -#~ "occured. Please try again later." -#~ msgstr "" -#~ "При попытке удалить комментарии произошла ошибка. Пожалуйста, повторите " -#~ "попытку позже." - -#~ msgid "You are not allowed to view this page." -#~ msgstr "Вам не разрешено просматривать эту страницу." - -#~ msgid "You do not have the selected post types!" -#~ msgstr "Вы не выбрали еще ни одного типа записей!" - -#~ msgid "No comments available for deletion." -#~ msgstr "Нет комментариев для удаления." - -#~ msgid "" -#~ "Are you sure that you desire to delete all comments from the database?" -#~ msgstr "Вы уверены, что хотите удалить все комментарии из базы данных?" - -#~ msgid "" -#~ "Deleting comments will remove existing comment entries in the database " -#~ "and cannot be reverted without a database backup." -#~ msgstr "" -#~ "При удалении комментариев удаляются существующие записи комментариев в " -#~ "базе данных, они не могут быть восстановлены без резервного копирования " -#~ "базы данных." - -#~ msgid "You have %s comments" -#~ msgstr "У вас есть %s комментариев" - -#~ msgid "Yes, I'm sure" -#~ msgstr "Да, я уверен" - -#~ msgid "No, return back" -#~ msgstr "Нет, вернуться" - -#~ msgid "" -#~ "Are you sure that you desire to delete all comments from the database for " -#~ "the selected post types (%s)?" -#~ msgstr "" -#~ "Вы уверены, что хотите удалить все комментарии из базы данных для " -#~ "выбранных типов записей (%s)?" - -#~ msgid "Disable comments" -#~ msgstr "Отключить комментарии" - -#~ msgid "Not disable" -#~ msgstr "Не отключать" - -#~ msgid "Everywhere" -#~ msgstr "Повсюду" - -#~ msgid "" -#~ "You can delete all comments in the database by clicking on this link (cleaning comments in database)." -#~ msgstr "" -#~ "Вы можете удалить все комментарии в базе данных, нажав на эту ссылку ( очистка комментариев в базе данных )." - -#~ msgid "On certain post types" -#~ msgstr "Только выбранные типы записей" - -#~ msgid "" -#~ "You can delete all comments for the selected post types. Select the post " -#~ "types below and save the settings. After that, click the link (delete all comments for the selected post types in database)." -#~ msgstr "" -#~ "Вы можете удалить все комментарии для выбранных типов записей. Выберите " -#~ "типы записей ниже и сохраните настройки. После этого нажмите ссылку ( удалите все комментарии для выбранных типов записей в базе " -#~ "данных )." - -#~ msgid "" -#~ "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" -#~ msgstr "" -#~ "Повсюду - предупреждение: этот параметр является глобальным и повлияет на " -#~ "весь ваш сайт. Используйте его только в том случае, если вы хотите " -#~ "отключить комментарии повсюду. " - -#~ msgid "" -#~ "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." -#~ msgstr "" -#~ "В некоторых типах сообщений - отключение комментариев также отключает " -#~ "трекбэки и pingback. Все поля, связанные с комментариями, также будут " -#~ "скрыты от экранов редактирования / быстрого редактирования затронутых " -#~ "сообщений. Эти настройки нельзя переопределять для отдельных сообщений." - -#~ msgid "Select the post types for which comments will be disabled" -#~ msgstr "Выберите типы записей, для которых комментарии будут отключены." - -#~ msgid "" -#~ "Tired of spam in the comments? Do visitors leave \"blank\" comments for " -#~ "the sake of a link to their site?" -#~ msgstr "" -#~ "Надоел спам в комментариях? Посетители оставляют «пустые» комментарии " -#~ "ради ссылки на свой сайт?" - -#~ msgid "Removes the \"Site\" field from the comment form." -#~ msgstr "Убирает поле «Сайт» из формы комментирования." - -#~ msgid "" -#~ "Works with the standard comment form, if the form is manually written in " -#~ "your theme-it probably will not work!" -#~ msgstr "" -#~ "Работает со стандартной формой комментирования, если в Вашей теме форма " -#~ "прописана вручную - скорей всего не сработает!" - -#~ msgid "Recommended" -#~ msgstr "Рекомендовано" - -#~ msgid "" -#~ "Superfluous external links from comments, which can be typed from a dozen " -#~ "and more for one article, do not bring anything good for promotion." -#~ msgstr "" -#~ "Внешние ссылки в комментариях, которых может быть десятки или больше на " -#~ "одной странице, могут ухудшить продвижение вашего сайта." - -#~ msgid "Replaces the links of this kind of %s, on links of this kind %s" -#~ msgstr "" -#~ "Заменяет ссылки %s, на span тег и устанавливает переход с помощью " -#~ "JavaScript %s" - -#~ msgid "" -#~ "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." -#~ msgstr "" -#~ "До 90 процентов комментариев в блоге оставляют ради внешней ссылки. Не " -#~ "поможет даже nofollow от потери веса страницы." - -#~ msgid "" -#~ "Replaces the links of the authors of comments on the JavaScript code, it " -#~ "is impossible to distinguish it from usual links." -#~ msgstr "" -#~ "Заменяет ссылки авторов комментариев на JavaScript код, его невозможно " -#~ "отличить от обычной ссылки." - -#~ msgid "In some Wordpress topics this may not work." -#~ msgstr "В некоторых темах Wordpress это может не сработать." - -#~ msgid "Disable XML-RPC" -#~ msgstr "Отключить XML-RPC" - -#~ msgid "" -#~ "A pingback is basically an automated comment that gets created when " -#~ "another blog links to you. A self-pingback is created when you link to an " -#~ "article within your own blog. Pingbacks are essentially nothing more than " -#~ "spam and simply waste resources." -#~ msgstr "" -#~ "Pingback по-существу автоматизированных комментарий, который создается, " -#~ "когда другой блог ссылается на вас. Self-pingback создается, когда вы " -#~ "оставили ссылку на статью в своем блоге. Pingbacks по существу являются " -#~ "не более чем спам и пустая трата ресурсов вашего сайта." - -#~ msgid "Removes the server responses a reference to the xmlrpc file." -#~ msgstr "Удаляет ссылку на xmlrpc-файл и ответ сервера." - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Comments tweaks\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Инструменты " -#~ "комментариев»!" - -#~ msgid "Webcraftic comments tweaks" -#~ msgstr "Webcraftic инструменты комментариев" - -#~ msgid "Comments are closed." -#~ msgstr "Комментарии Закрыты." - -#~ msgid "" -#~ "Note: The %s plugin is currently active, and comments are " -#~ "completely disabled on: %s. Many of the settings below will not be " -#~ "applicable for those post types." -#~ msgstr "" -#~ "Примечание. Плагин %s в настоящий момент активен, и комментарии " -#~ "полностью отключены: %s. Многие из приведенных ниже настроек не будут " -#~ "применяться для этих типов сообщений." - -#~ msgid "" -#~ "We found that you have the \"Clearfy - disable unused features\" plugin " -#~ "installed, this plugin already has disable comments functions, so you can " -#~ "deactivate plugin \"Disable comments\"!" -#~ msgstr "" -#~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить " -#~ "неиспользуемые функции», этот плагин уже имеет функции отключения " -#~ "комментариев, поэтому вы можете отключить плагин «Отключить комментарии»!" - -#~ msgid "Webcraftic Disable comments" -#~ msgstr "Webcraftic отключить комментарии" diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/migrations/010004.php b/wp-content/plugins/!clearfy/components/cyrlitera/migrations/010004.php deleted file mode 100644 index 35e9c6d3..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/migrations/010004.php +++ /dev/null @@ -1,12 +0,0 @@ -deletePopulateOption( 'custom_symbols_pack' ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/readme.txt b/wp-content/plugins/!clearfy/components/cyrlitera/readme.txt deleted file mode 100644 index 8ac1c558..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/readme.txt +++ /dev/null @@ -1,157 +0,0 @@ -=== Cyrlitera – transliteration of links and file names === -Tags: translitera, cyrillic, latin, l10n, russian, rustolat, slugs, translations, transliteration, media, georgian, european, diacritics, ukrainian -Contributors: webcraftic, creativemotion, alexkovalevv -Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW -Requires at least: 5.6 -Tested up to: 6.7 -Requires PHP: 7.4 -Stable tag: trunk -License: GPLv2 - -The plugin converts Cyrillic, Georgian links, filenames into Latin. It is necessary for correct work of WordPress plugins and improve links readability. - -== Description == - -Transliteration is the transformation of one character into another, for example Cyrillic characters, into Latin. Usually transliteration is used to improve the readability of permalinks and avoid problems with displaying and reading files, because everything in network based on the Latin alphabet. Many plugins made by English-speaking developers do not optimize under the Cyrillic alphabet and can work unstable. - -Cyrlitera transliteration plugin replaces Cyrillic, Georgian characters at posts, pages and tags to create readable permalinks. Also this plugin fixes incorrect file names and removes unnecessary characters, which can cause problems when accessing this file. - -**Cyrillic link example:**
      -_site.dev/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82-%D0%BC%D0%B8%D1%80 - -**Converted into the Latin alphabet:**
      -_site.dev/privet-mir - -In the first case, you can not visually understand the text of encoded link. In the second case, the link transliteration is implemented, everything looks more clear and the link is more shorter. - -**An example of incorrect filename transliteration:**
      -%D0%BC%D0%BE%D0%B5_image_ 290.jpg
      -A+nice+picture.png - -**Images transliteration example:**
      -moe_image_ 290.jpg
      -a-nice-picture.png - -If you ignore file names creation rules, then you can get 404 errors and broken links. - -Therefore, create file names using Latin characters and numbers, avoiding special characters, except dashes and underscores. Alternatively, use this plugin. It will do all this work automatically when uploading a file via the WordPress interface and reduce the number of broken links. - -#### FEATURES #### -* Converts permalinks of existing posts, pages, categories and tags when options are enable; - -* Keeps the integrity of records' and pages' permalinks; - -* Creates a redirect from old posts and pages names to the new ones with converted links; - -* Performs transliteration of the attachments file names; - -* Converts filenames into lowercase; - -* Includes Russian, Belarusian, Ukrainian, Bulgarian, Georgian symbols; - -* You can advance a characters base for transliteration; - -* You can roll back changes if the plugin converted your URLs incorrectly. - - -#### THANKS TO THE PLUGINS' AUTHORS #### -We used some plugins functions: -WP Translitera, Rus-To-Lat, Cyr to Lat, Clearfy — WordPress optimization plugin and disable ultimate tweaker,translit-it, Cyr to Lat enhanced, Cyr-And-Lat, Rus filename translit, rus to lat advanced - -#### RECOMMENDED SEPARATE MODULES #### -We invite you to check out a few other related free plugins that our team has also produced that you may find especially useful: - -* [Clearfy – WordPress optimization plugin and disable ultimate tweaker](https://wordpress.org/plugins/clearfy/) -* [Disable Comments for Any Post Types (Remove Comments)](https://wordpress.org/plugins/comments-plus/) -* [Disable updates, Disable automatic updates, Updates manager](https://wordpress.org/plugins/webcraftic-updates-manager/) -* [Cyr-to-lat reloaded – transliteration of links and file names](https://wordpress.org/plugins/cyr-and-lat/ "Cyr-to-lat reloaded") -* [Disable admin notices individually](https://wordpress.org/plugins/disable-admin-notices/ "Disable admin notices individually") -* [WordPress Assets manager, dequeue scripts, dequeue styles](https://wordpress.org/plugins/gonzales/ "WordPress Assets manager, dequeue scripts, dequeue styles") -* [Hide login page](https://wordpress.org/plugins/hide-login-page/ "Hide login page") - -== Installation == - -1. Upload the plugin files to the `/wp-content/plugins/plugin-name` directory, or install the plugin through the WordPress plugins screen directly. -2. Activate the plugin through the 'Plugins' screen in WordPress -3. Go to the general settings and click on the "Transliteration" tab, activate the options and save the settings. - -== Frequently Asked Questions == - -= Converts characters incorrectly? = -Try to change the problematic symbols in the plugin's settings with the symbol base enlargement field. These characters will replace the default characters. - -= How to restore converted URLs? = -There is a "Rollback changes" button in the plugin settings. This option works only for links, which has been transliterated. This will not work for filenames. - -== Screenshots == -1. Setting page -2. Simple for posts -2. Simple for filenames - -== Changelog == -= 1.2.0 (05.12.2024) = -* Added: Compatibility with Wordpress 6.7 - -= 1.1.9 (21.03.2024) = -* Added: Compatibility with Wordpress 6.5 -* Added: Compatibility with php 8.3 - -= 1.1.7 (21.11.2023) = -* Added: Compatibility with Wordpress 6.4 -* Added: Compatibility with php 8.2 - -= 1.1.7 (22.03.2023) = -* Fixed: Freemius framework conflict -* Added: Compatibility with Wordpress 6.2 - -= 1.1.6 (30.05.2022) = -* Added: Compatibility with Wordpress 6.0 - -= 1.1.5 (24.03.2022) = -* Added: Compatibility with Disable admin notices plugin - -= 1.1.4 (23.03.2022) = -* Added: Compatibility with Wordpress 5.9 -* Fixed: Minor bugs - -= 1.1.3 (20.10.2021) = -* Added: Compatibility with Wordpress 5.8 -* Fixed: Minor bugs - -= 1.1.2 (15.12.2020) = -* Added: Subscribe form -* Fixed: Minor bugs - -= 1.1.1 = -* Added: Compatibility with Wordpress 4.2 - 5.x -* Added: Gutenberg support -* Added: Multisite support -* Fixed: Minor bugs - -= 1.0.5 = -Fixed: Update core -Fixed: Bug with bodypress -Fixed: Transliteration on the frontend -Fixed: Added option to disable transliteration on frontend - -= 1.0.4 = -Fixed: Bug with transliteration of file names -Added: Compatibility with PHP 7.2 -Added: Forced transliteration for file names - -= 1.0.3 = -* Fixed: Small bugs - -= 1.0.2 = -* Added: Function of converting files to lowercase -* Added: Forced transliteration function -* Added: The function of redirecting old records to new ones -* Added: Ability to change the base of symbols of transliteration -* Added: Button for converting old posts, categories, tags -* Added: Button to restore old links - -= 1.0.1 = -* Fixed small bugs - -= 1.0.0 = -* Plugin release \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/cyrlitera/uninstall.php b/wp-content/plugins/!clearfy/components/cyrlitera/uninstall.php deleted file mode 100644 index 812eaff4..00000000 --- a/wp-content/plugins/!clearfy/components/cyrlitera/uninstall.php +++ /dev/null @@ -1,14 +0,0 @@ -query( "DELETE FROM {$wpdb->prefix}options WHERE option_name LIKE 'wbcr_cyrlitera_%';" ); -$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wbcr_wp_term_%';" ); -$wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE meta_key='wbcr_wp_old_slug';" ); - diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/hide-notice.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/hide-notice.php deleted file mode 100644 index ffa83cfb..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/hide-notice.php +++ /dev/null @@ -1,63 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -function wbcr_dan_ajax_hide_notices() { - check_ajax_referer( WDN_Plugin::app()->getPluginName() . '_ajax_hide_notices_nonce', 'security' ); - - if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_network' ) ) { - $notice_id = WDN_Plugin::app()->request->post( 'notice_id', null, true ); - $notice_html = WDN_Plugin::app()->request->post( 'notice_html', null ); - $hide_target = WDN_Plugin::app()->request->post( 'target', 'user' ); - //$notice_text = wp_kses( $notice_html, [] ); - - if ( empty( $notice_id ) ) { - wp_send_json_error( [ 'error_message' => __( 'Undefinded notice id.', 'disable-admin-notices' ) ] ); - } - - switch ( $hide_target ) { - case 'all': - $get_hidden_notices = WDN_Plugin::app()->getPopulateOption( 'hidden_notices', [] ); - - if ( ! is_array( $get_hidden_notices ) ) { - $get_hidden_notices = []; - } - - $get_hidden_notices[ $notice_id ] = rtrim( trim( $notice_html ) ); - - WDN_Plugin::app()->updatePopulateOption('hidden_notices', $get_hidden_notices ); - break; - case 'user': - default: - $current_user_id = get_current_user_id(); - $get_hidden_notices = get_user_meta( $current_user_id, WDN_Plugin::app()->getOptionName( 'hidden_notices' ), true ); - - if ( ! is_array( $get_hidden_notices ) ) { - $get_hidden_notices = []; - } - - $get_hidden_notices[ $notice_id ] = rtrim( trim( $notice_html ) ); - - update_user_meta( $current_user_id, WDN_Plugin::app()->getOptionName( 'hidden_notices' ), $get_hidden_notices ); - break; - } - - wp_send_json_success(); - } else { - wp_send_json_error( [ 'error_message' => __( 'You don\'t have enough capability to edit this information.', 'disable-admin-notices' ) ] ); - } -} - -add_action( 'wp_ajax_wbcr-dan-hide-notices', 'wbcr_dan_ajax_hide_notices' ); diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/index.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/restore-notice.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/restore-notice.php deleted file mode 100644 index 44909e6c..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/ajax/restore-notice.php +++ /dev/null @@ -1,49 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -function wbcr_dan_ajax_restore_notice() { - check_ajax_referer( WDN_Plugin::app()->getPluginName() . '_ajax_restore_notice_nonce', 'security' ); - - if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_network' ) ) { - $notice_id = WDN_Plugin::app()->request->post( 'notice_id', null, true ); - - if ( empty( $notice_id ) ) { - wp_send_json_error( [ 'error_message' => __( 'Undefinded notice id.', 'disable-admin-notices' ) ] ); - } - - //Users notices - $current_user_id = get_current_user_id(); - $get_hidden_notices = get_user_meta( $current_user_id, WDN_Plugin::app()->getOptionName( 'hidden_notices' ), true ); - if ( ! empty( $get_hidden_notices ) && isset( $get_hidden_notices[ $notice_id ] ) ) { - unset( $get_hidden_notices[ $notice_id ] ); - update_user_meta( $current_user_id, WDN_Plugin::app()->getOptionName( 'hidden_notices' ), $get_hidden_notices ); - } - - //All notices - $get_hidden_notices_all = WDN_Plugin::app()->getPopulateOption( 'hidden_notices', [] ); - if ( ! empty( $get_hidden_notices_all ) && isset( $get_hidden_notices_all[ $notice_id ] ) ) { - unset( $get_hidden_notices_all[ $notice_id ] ); - WDN_Plugin::app()->updatePopulateOption( 'hidden_notices', $get_hidden_notices_all ); - } - - - wp_send_json_success(); - } else { - wp_send_json_error( [ 'error_message' => __( 'You don\'t have enough capability to edit this information.', 'disable-admin-notices' ) ] ); - } -} - -add_action( 'wp_ajax_wbcr-dan-restore-notice', 'wbcr_dan_ajax_restore_notice' ); diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/general.css b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/general.css deleted file mode 100644 index 7154f073..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/general.css +++ /dev/null @@ -1,51 +0,0 @@ -.wbcr-dan-hide-notices { - position: initial; - padding: 5px 5px 0; - background: transparent; -} -.wbcr-dan-hide-notices > div { - margin: 0 !important; -} -.is-dismissible .wbcr-dan-hide-links { - margin-right: -25px; -} -.wbcr-dan-hide-links { - text-align: right; - padding: 0 5px 5px 0; -} -.wbcr-dan-hide-links .wbcr-dan-hide-notice-link { - min-height: 20px; - line-height: 2; - padding: 0 5px 0 0; - font-size: 11px; - color: #ec3c47; - background: #fff; - margin: 0; - cursor: pointer; - border: 1px solid #ec3c47; - border-radius: 5px; -} -.wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover { - background: #ec3c47; - color: #fff; -} -.wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover:before { - background-image: url('../img/hide-icon-white.svg'); -} -.wbcr-dan-hide-links .wbcr-dan-hide-notice-link:focus { - border: 2px solid #ec3c47; - outline: none; -} -.wbcr-dan-hide-links .wbcr-dan-hide-notice-link:before { - content: ''; - display: inline-block; - width: 25px; - height: 18px; - background-color: transparent; - background-image: url('../img/hide-icon.svg'); - background-repeat: no-repeat; - background-position: center center; - background-size: 25px; - vertical-align: middle; -} -/*# sourceMappingURL=general.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/notifications-panel.css b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/notifications-panel.css deleted file mode 100644 index 4a0b9dd5..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/notifications-panel.css +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Notification panel in admin bar - * @author Alex Kovalev - * @copyright Alex Kovalev 23.08.2017 - */ -#wp-admin-bar-wbcr-han-notify-panel .wbcr-han-adminbar-counter { - background-color: #0073aa; - border-radius: 50%; - color: #fff; - font-weight: bold; - padding: 2px 6px; - font-size: 0.85em; - margin-left: 5px; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper { - max-height: 500px; - overflow-y: scroll; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu { - width: 400px; - padding: 0; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li { - border-left: 4px solid #26292b; - padding: 0; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-updated { - border-left-color: #7ad03a; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-update-nag { - border-left-color: #ffba00; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-error { - border-left-color: #dd3d36; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line { - text-align: right; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a { - color: #ffba00 !important; - text-decoration: none !important; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a:hover { - text-decoration: underline !important; - color: #ffc11a !important; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item { - height: 100% !important; - white-space: normal !important; - padding: 0.5em 1em; - border-bottom: 1px solid #4a4f55; - color: #949494; - line-height: 1.5 !important; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item a { - display: inline; - padding: 0; - margin: 0; - text-decoration: underline; - line-height: 1.5 !important; - color: #949494; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li[id^=wp-admin-bar-wbcr-han-notify-panel-group] .ab-item { - height: 100%; - white-space: normal; - padding: 0.5em 1em; - border-bottom: 1px solid #fff; - color: #fff; - line-height: 2; - text-align: center; - font-weight: bold; - text-transform: uppercase; -} -#wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu li:nth-child(2n) { - background: #26292b; -} -/*# sourceMappingURL=notifications-panel.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/page.css b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/page.css deleted file mode 100644 index 193259c6..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/page.css +++ /dev/null @@ -1,9 +0,0 @@ -.wdan-plugin-header-logo { - background: transparent url('../img/hide-icon.svg') no-repeat left center !important; - background-size: 40px !important; - display: block; - float: left; - height: 30px; - width: 40px; -} -/*# sourceMappingURL=page.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/settings.css b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/settings.css deleted file mode 100644 index 3e626735..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/css/settings.css +++ /dev/null @@ -1,220 +0,0 @@ -#WBCR .factory-checkbox.wdanpro-checkbox-premium-label:after, -#WBCR .wdanpro-radio-premium-label .factory-compact_panel:after { - display: inline-block; - position: relative; - content: 'PRO'; - background: #ff5722; - border-radius: 4px; - color: #fff; - font-size: 10px; - line-height: 1; - font-style: normal; - padding: 4px 6px; - margin-left: 4px; - vertical-align: top; - top: -8px; - left: -10px; - right: auto; - z-index: 11; - cursor: pointer; -} -#WBCR .wdanpro-radio-premium-label .factory-compact_panel:after { - position: absolute; - top: -10px; - right: -10px; - left: auto; -} -#WBCR .factory-checkbox-disabled input, -#WBCR .factory-checkbox-disabled button, -#WBCR .wdanpro-radio-premium-label .factory-compact_panel { - pointer-events: none; - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -#WBCR .wrdan-premium-fake-content { - position: relative; - padding: 15px; -} -#WBCR .wdan-premium-info { - position: absolute; - top: 50px; - left: 50%; - margin-left: -250px; - max-width: 500px; - z-index: 999; -} -#WBCR .wdan-premium-info h3 { - font-size: 32px; - font-weight: 300; - color: inherit; - margin: 40px 0 10px; - line-height: 1.2; -} -#WBCR .wdan-premium-info p { - font-size: 16px; - font-weight: 400; - color: #a4afb7; - margin-bottom: 40px; -} -#WBCR .wdan-premium-layer { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 0.9; - background: #fff; -} -#WBCR .wdan-button { - font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; - font-weight: 500; - text-transform: uppercase; - outline: none; - border: none; - text-decoration: none; - -webkit-border-radius: 3px; - border-radius: 3px; - -webkit-transition-property: background, color, opacity, -webkit-box-shadow; - transition-property: background, color, opacity, -webkit-box-shadow; - -o-transition-property: background, color, box-shadow, opacity; - transition-property: background, color, box-shadow, opacity; - transition-property: background, color, box-shadow, opacity, -webkit-box-shadow; - -webkit-transition-duration: 0.3s; - -o-transition-duration: 0.3s; - transition-duration: 0.3s; -} -#WBCR .wdan-button:hover { - border: none; -} -#WBCR .wdan-button:not([disabled]) { - cursor: pointer; -} -#WBCR .wdan-button:not(.wdan-button-state) .wdan-state-icon { - display: none; -} -#WBCR .wdan-button.wdan-button-success { - color: #fff; -} -#WBCR .wdan-button.wdan-button-success[disabled] { - background-color: #c2cbd2; -} -#WBCR .wdan-button.wdan-button-success:not([disabled]) { - background-color: #39b54a; -} -#WBCR .wdan-button.wdan-button-success:not([disabled]):hover { - opacity: 0.85; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); -} -#WBCR .wdan-button.wdan-button-success:not([disabled]):active { - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); -} -#WBCR .wdan-button.wdan-button-warning { - background-color: #a4afb7; - color: #fff; -} -#WBCR .wdan-button.wdan-button-warning[disabled] { - background-color: #c2cbd2; -} -#WBCR .wdan-button.wdan-button-warning:not([disabled]):hover { - background-color: #b01b1b; - opacity: 0.85; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); -} -#WBCR .wdan-button.wdan-button-warning:not([disabled]):active { - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); -} -#WBCR .wdan-button.wdan-button-danger { - background-color: #d72b3f; - color: #fff; -} -#WBCR .wdan-button.wdan-button-danger[disabled] { - background-color: #c2cbd2; -} -#WBCR .wdan-button.wdan-button-danger:not([disabled]):hover { - opacity: 0.85; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); -} -#WBCR .wdan-button.wdan-button-danger:not([disabled]):active { - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); -} -#WBCR .wdan-button.wdan-edit-template { - display: inline-block; - margin-top: 15px; - color: #fff; -} -#WBCR .wdan-button.wdan-button-default { - background-color: #a4afb7; - color: #fff; - font-size: 11px; - padding: 7px 21px; -} -#WBCR .wdan-button.wdan-button-default:hover { - background-color: #6d7882; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2); -} -#WBCR .wdan-button.wdan-button-default:active { - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); -} -#WBCR .wdan-button.wdan-button-default:visited { - color: #fff; -} -#WBCR .wdan-button.wdan-button-go-pro { - background-color: #ff5722; -} -#WBCR .wdan-button i { - margin-right: 10px; -} -.wdan-hidden-list { - padding: 0 15px; -} -.wdan-hidden-list-notice { - background: #fff; - border: 1px solid #ccd0d4; - border-left-width: 4px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - padding: 1px 12px; -} -.wdan-hidden-list-notice div.wdan-notice-p { - margin: 0.5em 0; - padding: 2px; -} -.wdan-hidden-list-notice div.wdan-notice-p div { - width: 100%; -} -.wdan-hidden-list-table { - border: 0; -} -.wdan-hidden-list-table tr > td:first-child { - padding: 5px 0 5px; -} -.wdan-hidden-list-table tr > td:last-child { - padding: 0 10px 0; - text-align: center; -} -.wdan-hidden-list-table .wdan-notices-page-table-head td { - font-size: 16px; - text-transform: uppercase; - padding: 10px !important; - font-weight: bold; -} -.wdan-hidden-list-table .wdan-hidden-list-notice-action { - vertical-align: middle; -} -.wdan-hidden-list-table .wdan-page-restore-notice-link-loader { - background: url(../img/loader.gif); - background-size: contain; - background-repeat: no-repeat; - background-position: top; -} -/*# sourceMappingURL=settings.css.map */ \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon-white.svg b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon-white.svg deleted file mode 100644 index aa8b3c41..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon-white.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon.svg b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon.svg deleted file mode 100644 index d4805936..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/hide-icon.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/loader.gif b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/loader.gif deleted file mode 100644 index 0b1dfe96..00000000 Binary files a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/img/loader.gif and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/notifications-panel.js b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/notifications-panel.js deleted file mode 100644 index 471f21fe..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/notifications-panel.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Notification panel - * @author Webcraftic - * @copyright (c) 10.09.2017, Webcraftic - * @version 1.0 - */ - -(function($) { - 'use strict'; - - $(document).ready(function() { - $(document).on('click', '.wbcr-han-panel-restore-notify-link', function() { - - var self = $(this), - noticeID = $(this).data('notice-id'), - nonce = $(this).data('nonce'), - counterEl = $('.wbcr-han-adminbar-counter'); - - if( !noticeID ) { - alert('Undefinded error. Please report the bug to our support forum.'); - } - - self.closest('li').hide(); - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: { - action: 'wbcr-dan-restore-notice', - security: nonce, - notice_id: noticeID - }, - success: function(response) { - if( !response || !response.success ) { - - if( response.data.error_message ) { - console.log(response.data.error_message); - self.closest('li').show(); - } else { - console.log(response); - } - - return; - } - - counterEl.text(counterEl.text() - 1); - self.closest('li').remove(); - }, - error: function(xhr, ajaxOptions, thrownError) { - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - } - }); - - return false; - }); - }); -})(jQuery); diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/settings.js b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/settings.js deleted file mode 100644 index d960e34a..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/assets/js/settings.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * General - * @author Webcraftic - * @copyright (c) 2020, Webcraftic - * @version 1.0 - */ - -(function ($) { - - function dan_pro_href(e) { - var pro_href = "https://clearfy.pro/disable-admin-notices/"; - e.stopPropagation(); - window.open(pro_href, '_blank'); - } - - $('.factory-checkbox.wdanpro-checkbox-premium-label').click(dan_pro_href); - $('.wdanpro-radio-premium-label .factory-compact_panel').click(dan_pro_href); - - $(document).on('click', '.wdan-page-restore-notice-link', function () { - var self = $(this), - noticeID = $(this).data('notice-id'), - nonce = $(this).data('nonce'), - counterEl = $('.wbcr-han-adminbar-counter'); - - if (!noticeID) { - alert('Undefinded error. Please report the bug to our support forum.'); - } - - self.hide(); - self.parent().find('.wdan-page-restore-notice-link-loader').show(); - - - $.ajax(ajaxurl, { - type: 'post', - dataType: 'json', - data: { - action: 'wbcr-dan-restore-notice', - security: nonce, - notice_id: noticeID - }, - success: function (response) { - if (!response || !response.success) { - - if (response.data.error_message) { - console.log(response.data.error_message); - self.closest('li').show(); - } else { - console.log(response); - } - - return; - } - - counterEl.text(counterEl.text() - 1); - self.closest('tr').hide(); - self.closest('tr').remove(); - }, - error: function (xhr, ajaxOptions, thrownError) { - console.log(xhr.status); - console.log(xhr.responseText); - console.log(thrownError); - } - }); - - return false; - }); - - -})(jQuery); diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/boot.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/boot.php deleted file mode 100644 index ae4f2e8c..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/boot.php +++ /dev/null @@ -1,116 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( ! defined( 'LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON' ) ) { - add_filter( 'plugin_row_meta', function ( $links, $file ) { - if ( $file == WDN_PLUGIN_BASE ) { - $url = 'https://clearfy.pro/disable-admin-notices/'; - $url .= '?utm_source=wordpress.org&utm_campaign=' . WDN_Plugin::app()->getPluginName(); - $links[] = '' . __( 'Get premium plugin', 'disable-admin-notices' ) . ''; - } - - return $links; - }, 10, 2 ); - - /** - * Изменяем ссылку по умолчанию на собственную в виджете "Голосу за нас". - * - * Ссылка ведет на страницу рейтинга в репозитории Wordpress.org - * https://wordpress.org/support/plugin/disable-admin-notices/reviews/ - * - * @param string $page_url - * @param string $plugin_name - * - * @return string - * @since 1.0 - * - * @author Alexander Kovalev - */ - add_filter( 'wbcr_factory_pages_480_imppage_rating_widget_url', function ( $page_url, $plugin_name ) { - if ( $plugin_name == WDN_Plugin::app()->getPluginName() ) { - return 'https://goo.gl/68ucHp'; - } - - return $page_url; - }, 10, 2 ); - - /** - * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина - * - * - Виджет с премиум рекламой - * - Виджет с рейтингом - * - Виджет с маркерами информации - */ - add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) { - if ( WDN_Plugin::app()->getPluginName() == $plugin->getPluginName() && 'right' == $position ) { - unset( $widgets['business_suggetion'] ); - unset( $widgets['rating_widget'] ); - unset( $widgets['info_widget'] ); - } - - return $widgets; - }, 20, 3 ); -} else { - /** - * Регистрируем опции плагина в Clearfy, чтобы тот мог совершать манипуляции с опциями этого плагина. - * Обычно такие манипуляции относятся к быстрым настройкам, сбросу настроек. - * - * @author Alexander Kovalev - * @since 1.0 - */ - add_filter( "wbcr_clearfy_group_options", function ( $options ) { - $options[] = [ - 'name' => 'hide_admin_notices', - 'title' => __( 'Hide admin notices', 'disable-admin-notices' ), - 'tags' => [], - 'values' => [ 'hide_admin_notices' => 'only_selected' ] - ]; - $options[] = [ - 'name' => 'show_notices_in_adminbar', - 'title' => __( 'Enable hidden notices in adminbar', 'disable-admin-notices' ), - 'tags' => [] - ]; - - return $options; - } ); -} - -/** - * Print admin notice: "Would you like to send them for spam checking?" - * - * If user clicked button "Yes, do it", plugin will exec action, - * that put all unapproved comments to spam check queue. - */ -add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) { - if ( $plugin_name != WDN_Plugin::app()->getPluginName() || 'wbcr_clearfy' === $plugin_name ) { - return $notices; - } - - $page_url = 'https://clearfy.pro/disable-admin-notices/'; - - $notice_text = sprintf( __( 'Thanks for using the Disable admin notices plugin! If you need support or all the features of the plugin, please buy the pro version Get PRO' ), $page_url ); - - $notices[] = [ - 'id' => 'wdan_get_premium', - 'type' => 'success', - 'dismissible' => true, - 'dismiss_expires' => 0, - 'text' => '

      Disable Admin Notices Individually:
      ' . $notice_text . '

      ' - ]; - - return $notices; -}, 10, 2 ); \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/class-page-basic.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/class-page-basic.php deleted file mode 100644 index 720b1d53..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/class-page-basic.php +++ /dev/null @@ -1,43 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WDN_Page extends WBCR\Factory_Templates_134\Pages\PageBase { - - /** - * Requests assets (js and css) for the page. - * - * @param Wbcr_Factory480_ScriptList $scripts - * @param Wbcr_Factory480_StyleList $styles - * - * @return void - * @see Wbcr_FactoryPages480_AdminPage - * - */ - public function assets( $scripts, $styles ) { - $this->styles->add( WDN_PLUGIN_URL . '/admin/assets/css/page.css' ); - - parent::assets( $scripts, $styles ); - } - - public function getPluginTitle() { - return "" . __( 'Webcraftic Disable Admin Notices', 'disable-admin-notices' ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/options.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/options.php deleted file mode 100644 index 3b404197..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/options.php +++ /dev/null @@ -1,269 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * Регистрируем поля Html формы с настройками плагина. - * - * Эта функция используется для общей страницы настроек текущего плагина, - * а также для раширения настроек в плагине Clearfy. - * - * @return array Возвращает группу зарегистрируемых опций - * @since 1.0 - * @author Alexander Kovalev - */ -function wbcr_dan_get_plugin_options() { - $options = []; - - $options[] = [ - 'type' => 'html', - 'html' => '
      ' . '' . __( 'Admin notifications, Update nags', 'disable-admin-notices' ) . '' . '

      ' . __( 'Do you know the situation, when some plugin offers you to update to premium, to collect technical data and shows many annoying notices? You are close these notices every now and again but they newly appears and interfere your work with WordPress. Even worse, some plugin’s authors delete “close” button from notices and they shows in your admin panel forever.', 'disable-admin-notices' ) . '

      ' . '
      ' - ]; - - $hide_admin_notices_data = [ - [ - 'not_hide', - __( "Don't hide", 'disable-admin-notices' ), - __( 'Do not hide notices and do not show “Hide notification forever” link for admin.', 'disable-admin-notices' ) - ], - [ - 'all', - __( 'All notices', 'disable-admin-notices' ), - __( 'Hide all notices globally.', 'disable-admin-notices' ) . sprintf( __( 'Watch the video to find out how it works .', 'disable-admin-notices' ), 'https://youtu.be/_Lv5i4P3Gqs' ) - ], - [ - 'only_selected', - __( 'Only selected', 'disable-admin-notices' ), - __( 'Hide selected notices only. You will see the link "Hide notification forever" in each notice. Push it and they will not bother you anymore.', 'disable-admin-notices' ) . sprintf( __( 'Watch the video to find out how it works .', 'disable-admin-notices' ), 'https://youtu.be/HazI81AsHuY' ) - ] - ]; - - if ( ! wbcr_dan_is_active_clearfy_component() ) { - $hide_admin_notices_data[] = [ - 'compact_panel', - __( 'Compact panel', 'disable-admin-notices' ), - __( 'Collapse all notifications in one line (panel with notification counters), to see the notifications, you will need to click this panel.', 'disable-admin-notices' ) . sprintf( __( 'Watch the video to find out how it works .', 'disable-admin-notices' ), 'https://youtu.be/437u1Js2o2M' ) - ]; - } - - $options[] = [ - 'type' => 'dropdown', - 'name' => 'hide_admin_notices', - 'way' => 'buttons', - 'title' => __( 'Hide admin notices', 'disable-admin-notices' ), - 'data' => $hide_admin_notices_data, - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ], - 'hint' => __( 'Some plugins shows notifications about premium version, data collecting or promote their services. Even if you push close button (that sometimes are impossible), notices are shows again in some time. This option allows you to control notices. Hide them all or each individually. Some plugins shows notifications about premium version, data collecting or promote their services. Even if you push close button (that sometimes are impossible), notices are shows again in some time. This option allows you to control notices. Hide them all or each individually.', 'disable-admin-notices' ), - 'default' => 'only_selected', - 'cssClass' => ! ( WDN_Plugin::app()->premium->is_activate() && WDN_Plugin::app()->premium->is_install_package() ) ? [ 'wdanpro-radio-premium-label' ] : [], - 'events' => [ - 'all' => [ - 'show' => '.factory-control-hide_admin_notices_user_roles', - 'hide' => '.factory-control-reset_notices_button' - ], - 'only_selected' => [ - 'hide' => '.factory-control-hide_admin_notices_user_roles', - 'show' => '.factory-control-reset_notices_button' - ], - 'not_hide' => [ - 'hide' => '.factory-control-hide_admin_notices_user_roles, .factory-control-reset_notices_button' - ] - ] - ]; - - if ( ! wbcr_dan_is_active_clearfy_component() ) { - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_updates_nags_for_plugins', - 'title' => __( 'Disable plugins updates nags', 'disable-admin-notices' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'Disable plugins updates nags', 'disable-admin-notices' ), - 'cssClass' => ! ( WDN_Plugin::app()->premium->is_activate() && WDN_Plugin::app()->premium->is_install_package() ) ? [ 'factory-checkbox-disabled wdanpro-checkbox-premium-label' ] : [], - 'default' => false - ]; - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'disable_updates_nags_for_core', - 'title' => __( 'Disable core updates nags', 'disable-admin-notices' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ], - 'hint' => __( 'Disable core updates nags', 'disable-admin-notices' ), - 'cssClass' => ! ( WDN_Plugin::app()->premium->is_activate() && WDN_Plugin::app()->premium->is_install_package() ) ? [ 'factory-checkbox-disabled wdanpro-checkbox-premium-label' ] : [], - 'default' => false - ]; - } - - /*$options[] = array( - 'type' => 'dropdown', - 'name' => 'hide_admin_notices_for', - 'way' => 'buttons', - 'title' => __('Hide admin notices only for', 'disable-admin-notices'), - 'data' => array( - array( - 'user', - __('Current user', 'disable-admin-notices') - ), - array( - 'all_users', - __('All users', 'disable-admin-notices') - ) - ), - 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'), - 'hint' => __('Choose who to hide notifications for?', 'disable-admin-notices'), - 'default' => 'user', - 'events' => array( - 'all' => array( - 'show' => '.factory-control-hide_admin_notices_user_roles', - 'hide' => '.factory-control-reset_notices_button' - ), - 'only_selected' => array( - 'hide' => '.factory-control-hide_admin_notices_user_roles', - 'show' => '.factory-control-reset_notices_button' - ), - 'not_hide' => array( - 'hide' => '.factory-control-hide_admin_notices_user_roles, .factory-control-reset_notices_button' - ) - ) - );*/ - - $options[] = [ - 'type' => 'checkbox', - 'way' => 'buttons', - 'name' => 'show_notices_in_adminbar', - 'title' => __( 'Enable hidden notices in adminbar', 'disable-admin-notices' ), - 'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ], - 'hint' => __( 'By default, the plugin hides all notices, which you specified. If you enable this option, the plugin will collect all hidden notices and show them into the top admin toolbar. It will not disturb you but will allow to look notices at your convenience.', 'disable-admin-notices' ), - 'default' => false - ]; - - $options[] = [ - 'type' => 'html', - 'html' => 'wbcr_dan_reset_notices_button' - ]; - - return $options; -} - -function wbcr_dan_is_active_clearfy_component() { - if ( defined( 'WCL_PLUGIN_ACTIVE' ) && class_exists( 'WCL_Plugin' ) ) { - $deactivate_components = WCL_Plugin::app()->getPopulateOption( 'deactive_preinstall_components', [] ); - if ( ! in_array( 'disable_notices', $deactivate_components ) ) { - return true; - } - } - return false; -} - -/** - * Расширяем опции html формы страницы "Дополнительно" в плагине Clearfy - * - * Это необходимо для того, чтобы не создавать отдельную страницу в плагине Clearfy, \ - * с настройками этого плагина, потому что это ухудшает юзабилити. - * - * @param array $form Массив с группой настроек, страницы "Дополнительно" в плагине Clearfy - * @param Wbcr_FactoryPages480_ImpressiveThemplate $page Экземпляр страницы - * - * @return mixed Отсортированный массив с группой опций - */ -function wbcr_dan_additionally_form_options( $form, $page ) { - if ( empty( $form ) ) { - return $form; - } - - $options = wbcr_dan_get_plugin_options(); - - foreach ( array_reverse( $options ) as $option ) { - array_unshift( $form[0]['items'], $option ); - } - - return $form; -} - -add_filter( 'wbcr_clr_additionally_form_options', 'wbcr_dan_additionally_form_options', 10, 2 ); - -/** - * Реализует кнопку сброса скрытых уведомлений. - * - * Вы можете выбрать для какой группы пользователей сбросить уведомления. - * Эта модикация является не стандартной, поэтому мы не можете реалировать ее - * через фреймворк. - * - * @param @param $html_builder Wbcr_FactoryForms480_Html - * - * @since 1.0 - * - * @author Alexander Kovalev - */ -function wbcr_dan_reset_notices_button( $html_builder ) { - global $wpdb; - - $form_name = $html_builder->getFormName(); - $reseted = false; - - if ( isset( $_POST['wbcr_dan_reset_action'] ) ) { - check_admin_referer( $form_name, 'wbcr_dan_reset_nonce' ); - $reset_for_users = WDN_Plugin::app()->request->post( 'wbcr_dan_reset_for_users', 'current_user', true ); - - if ( $reset_for_users == 'current_user' ) { - delete_user_meta( get_current_user_id(), WDN_Plugin::app()->getOptionName( 'hidden_notices' ) ); - } else { - $meta_key = sanitize_key( WDN_Plugin::app()->getOptionName( 'hidden_notices' ) ); - $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '{$meta_key}'" ); - } - - $reseted = true; - } - - ?> -
      - -
      -
      -
      - -

      - -

      -

      - -

      -

      - -

      - -
      - -
      -
      -
      -
      - , Github: https://github.com/alexkovalevv - * @copyright (c) 2019 Webraftic Ltd - * @version 1.0 - */ -class WDAN_Edit_Admin_Bar extends WDN_Page { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "wdanp-edit-admin-bar"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $type = "page"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-menu'; - - /** - * {@inheritDoc} - * - * @since 2.0.5 - добавлен - * @var bool - */ - public $show_right_sidebar_in_options = false; - - - /** - * @param WDN_Plugin $plugin - */ - public function __construct( $plugin ) { - $this->menu_title = __( 'Hide adminbar items', 'disable-admin-notices' ); - $this->page_menu_short_description = __( 'You can hide an annoying adminbar menu', 'disable-admin-notices' ); - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - - add_action( 'wp_before_admin_bar_render', [ $this, 'remove_from_admin_bar' ], 999 ); - } - - /** - * Requests assets (js and css) for the page. - * - * @param Wbcr_Factory480_ScriptList $scripts - * @param Wbcr_Factory480_StyleList $styles - * - * @return void - * @see Wbcr_FactoryPages480_AdminPage - * - */ - public function assets( $scripts, $styles ) { - parent::assets( $scripts, $styles ); - - $this->styles->add( WDN_PLUGIN_URL . '/admin/assets/css/settings.css' ); - } - - public function remove_from_admin_bar() { - global $wp_admin_bar; - - if ( empty( $wp_admin_bar ) ) { - return; - } - - $hidden_items = $this->plugin->getPopulateOption( 'hidden_adminbar_items', [] ); - - $nodes = []; - foreach ( $wp_admin_bar->get_nodes() as $node ) { - if ( false === $node->parent && ! empty( $node->title ) ) { - if ( "updates" === $node->id ) { - $node->title = "Updates"; - } - if ( "comments" === $node->id ) { - $node->title = "Comments"; - } - $nodes[ $node->id ] = strip_tags( $node->title ); - } - } - - $this->plugin->updatePopulateOption( 'adminbar_items', $nodes ); - } - - public function showPageContent() { - $all_items = $this->plugin->getPopulateOption( 'adminbar_items', [] ); - $hidden_items = $this->plugin->getPopulateOption( 'hidden_adminbar_items', [] ); - - ?> - -
      -
      -

      Hide admin bar items (menu) PRO

      -

      This function allows you to disable annoying menu items in the admin bar. Some plugins take up space - in - the admin bar to insert their ads. Just get rid of this ad with the premium features of our - plugin.

      - Go - Pro -
      -
      - -

      Disable adminbar items

      - - - - - - $title ): ?> - - - - - - -
      Menu titleAction
      - - Disable - - Enable - -
      -
      - - , Github: https://github.com/alexkovalevv - * @copyright (c) 2019 Webraftic Ltd - * @version 1.0 - */ -class WDAN_Block_Ad_Redirects extends WDN_Page { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "wdanp-edit-redirects"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $type = "page"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons dashicons-undo'; - - /** - * {@inheritDoc} - * - * @since 2.0.5 - добавлен - * @var bool - */ - public $show_right_sidebar_in_options = false; - - - /** - * @param WDN_Plugin $plugin - */ - public function __construct( $plugin ) { - $this->menu_title = __( 'Block ad redirects', 'disable-admin-notices' ); - $this->page_menu_short_description = __( 'Break advertising redirects', 'disable-admin-notices' ); - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - /** - * Requests assets (js and css) for the page. - * - * @param Wbcr_Factory480_ScriptList $scripts - * @param Wbcr_Factory480_StyleList $styles - * - * @return void - * @see Wbcr_FactoryPages480_AdminPage - * - */ - public function assets( $scripts, $styles ) { - parent::assets( $scripts, $styles ); - - $this->styles->add( WDN_PLUGIN_URL . '/admin/assets/css/settings.css' ); - } - - public function get_break_redirects() { - return []; - } - - public function showPageContent() { - $redirects = $this->get_break_redirects(); - ?> - -
      -
      -

      Block Ad redirects PRO

      -

      This feature will be useful to you to break advertising redirects. Some plugins, when updating or - during - installation, may redirect you to their page with advertisements or news. If plugins do this too - often, - it can be a headache for you. Break these redirects with our premium features.

      - - Go Pro - -
      -
      - -

      Block ad redirects

      -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      UrlAction
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      - https://site.com/wp-admin/?page=plugin-name&ads=redirect - - Unblock -
      -
      - , Github: https://github.com/alexkovalevv - * - * @copyright (c) 2018 Webraftic Ltd - */ -class WDN_LicensePage extends WBCR\Factory_Templates_134\Pages\License { - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $id = 'wdn_license'; - - /** - * {@inheritdoc} - * - * @author Alexander Kovalev - * @since 1.6.0 - * @var string - */ - public $page_parent_page; - - /** - * WCL_LicensePage constructor. - * - * @param \Wbcr_Factory480_Plugin $plugin - * - * @author Alexander Kovalev - * - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'License', 'robin-image-optimizer' ); - $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' ); - $this->plan_name = __( 'Disable admin notices premium', 'robin-image-optimizer' ); - - /*if ( defined( 'WIO_PLUGIN_ACTIVE' ) && ! wrio_is_clearfy_license_activate() ) { - $this->page_parent_page = 'none'; - }*/ - - parent::__construct( $plugin ); - - /** - * Adds a new plugin card to license components page - * - * @author Alexander Kovalev - * @since 1.6.2 - */ - /*add_filter( 'wbcr/clearfy/license/list_components', function ( $components ) { - $title = 'Free'; - $icon = 'clearfy-premium-icon-256x256--lock.png'; - - if ( $this->is_premium ) { - $title = 'Premium'; - $icon = 'clearfy-premium-icon-256x256--default.png'; - } - - $components[] = [ - 'name' => 'clearfy', - 'title' => sprintf( __( 'Clearfy [%s]', 'clearfy' ), $title ), - 'type' => 'internal', - 'build' => $this->is_premium ? 'premium' : 'free', - 'key' => $this->get_hidden_license_key(), - 'plan' => $this->get_plan(), - 'expiration_days' => $this->get_expiration_days(), - 'quota' => $this->is_premium ? $this->premium_license->get_count_active_sites() . ' ' . __( 'of', 'clearfy' ) . ' ' . $this->premium_license->get_sites_quota() : null, - 'subscription' => $this->is_premium && $this->premium_has_subscription ? sprintf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ) : null, - 'url' => 'https://clearfy.pro/', - 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/' . $icon, - 'description' => __( 'Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'clearfy' ), - 'license_page_id' => 'clearfy_license' - ]; - - return $components; - } );*/ - } - - /** - * {@inheritdoc} - * - * @return string - * @since 1.6.0 - * @author Alexander Kovalev - */ - /*public function get_plan_description() { - $description = '

      ' . __( 'Clearfy Business 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' ) . '

      '; - $description .= '

      ' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '

      '; - - return $description; - }*/ -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/class-pages-notices.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/class-pages-notices.php deleted file mode 100644 index 61ff20a7..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/class-pages-notices.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @copyright (c) 2020 Webraftic Ltd - * @version 1.0 - */ -class WDAN_Notices extends WDN_Page { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "wdan-notices"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $type = "page"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-hidden'; - - /** - * {@inheritDoc} - * - * @since 2.0.5 - добавлен - * @var bool - */ - public $show_right_sidebar_in_options = false; - - - /** - * @param WDN_Plugin $plugin - */ - public function __construct( $plugin ) { - $this->menu_title = __( 'Hidden notices', 'disable-admin-notices' ); - $this->page_menu_short_description = __( 'Manage hidden notices', 'disable-admin-notices' ); - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - /** - * Requests assets (js and css) for the page. - * - * @param Wbcr_Factory480_ScriptList $scripts - * @param Wbcr_Factory480_StyleList $styles - * - * @return void - * @see Wbcr_FactoryPages480_AdminPage - * - */ - public function assets( $scripts, $styles ) { - parent::assets( $scripts, $styles ); - - $this->styles->add( WDN_PLUGIN_URL . '/admin/assets/css/settings.css' ); - } - - public function showPageContent() { - ?> -
      -
      -

      Hidden notices PRO

      -

      This function allows you to disable annoying menu items in the admin bar. Some plugins take up space - in - the admin bar to insert their ads. Just get rid of this ad with the premium features of our - plugin.

      - Go - Pro -
      -
      - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WDN_Settings_Page extends WDN_Page { - - /** - * {@inheritDoc} - * - * @var string - */ - public $id = "wdan_settings"; - - /** - * {@inheritDoc} - * - * @var string - */ - public $page_menu_dashicon = 'dashicons-admin-generic'; - - /** - * {@inheritDoc} - * - * @var bool - */ - public $available_for_multisite = true; - - /** - * {@inheritDoc} - * - * @since 1.1.0 - * @var bool - */ - public $show_right_sidebar_in_options = true; - - /** - * {@inheritDoc} - * - * @since 1.1.3 - Added - * @var bool - true show, false hide - */ - public $show_search_options_form = false; - - /** - * {@inheritDoc} - * @var int - */ - public $page_menu_position = 100; - - - /** - * @param Wbcr_Factory480_Plugin $plugin - */ - public function __construct( Wbcr_Factory480_Plugin $plugin ) { - $this->menu_title = __( 'Hide admin notices', 'disable-admin-notices' ); - $this->page_menu_short_description = __( 'General settings', 'disable-admin-notices' ); - - $this->internal = false; - $this->menu_target = 'options-general.php'; - $this->add_link_to_plugin_actions = true; - - parent::__construct( $plugin ); - - $this->plugin = $plugin; - } - - public function getPageTitle() { - return __( 'Settings', 'disable-admin-notices' ); - } - - /** - * Requests assets (js and css) for the page. - * - * @param Wbcr_Factory480_ScriptList $scripts - * @param Wbcr_Factory480_StyleList $styles - * - * @return void - * @see Wbcr_FactoryPages480_AdminPage - * - */ - public function assets( $scripts, $styles ) { - parent::assets( $scripts, $styles ); - - $this->styles->add( WDN_PLUGIN_URL . '/admin/assets/css/settings.css' ); - $this->scripts->add( WDN_PLUGIN_URL . '/admin/assets/js/settings.js' ); - } - - /** - * {@inheritDoc} - * - * @return array - */ - public function actionsNotice( $notices ) { - $notices[] = [ - 'conditions' => [ - 'wbcr_dan_reseted_notices' => 1 - ], - 'type' => 'success', - 'message' => __( 'Hidden notices are successfully reset, now you can see them again!', 'disable-admin-notices' ) - ]; - - /*$notices[] = array( - 'conditions' => array( - 'wbcr_dan_clear_comments_error' => 1, - 'wbcr_dan_code' => 'interal_error' - ), - 'type' => 'danger', - 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_480') - );*/ - - return $notices; - } - - /** - * {@inheritDoc} - * - * @return array - */ - public function getPageOptions() { - $options = wbcr_dan_get_plugin_options(); - - $formOptions = []; - - $formOptions[] = [ - 'type' => 'form-group', - 'items' => $options, - //'cssClass' => 'postbox' - ]; - - return apply_filters( 'wbcr_dan_notices_form_options', $formOptions, $this ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/index.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/index.php deleted file mode 100644 index 7e914158..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/admin/pages/index.php +++ /dev/null @@ -1,2 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( ! defined( 'WDN_PLUGIN_ACTIVE' ) ) { - define( 'WDN_PLUGIN_VERSION', '1.3.6' ); - define( 'WDN_TEXT_DOMAIN', 'disable-admin-notices' ); - define( 'WDN_PLUGIN_ACTIVE', true ); - - // Этот плагин загружен, как аддон для плагина Clearfy - define( 'LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON', true ); - - if ( ! defined( 'WDN_PLUGIN_DIR' ) ) { - define( 'WDN_PLUGIN_DIR', dirname( __FILE__ ) ); - } - - if ( ! defined( 'WDN_PLUGIN_BASE' ) ) { - define( 'WDN_PLUGIN_BASE', plugin_basename( __FILE__ ) ); - } - - if ( ! defined( 'WDN_PLUGIN_URL' ) ) { - define( 'WDN_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - } - - try { - // Global scripts - require_once( WDN_PLUGIN_DIR . '/includes/functions.php' ); - require_once( WDN_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' ); - new WDN_Plugin(); - } catch( Exception $e ) { - $wdan_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Webcraftic Disable Admin Notices', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wdan_plugin_error_func ); - add_action( 'network_admin_notices', $wdan_plugin_error_func ); - } -} - - diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/disable-admin-notices.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/disable-admin-notices.php deleted file mode 100644 index c0820dca..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/disable-admin-notices.php +++ /dev/null @@ -1,167 +0,0 @@ - - * Version: 1.3.6 - * Text Domain: disable-admin-notices - * Domain Path: /languages/ - * Author URI: https://webcraftic.com - * Framework Version: FACTORY_480_VERSION - */ - -/** - * Developers who contributions in the development plugin: - * - * Alexander Kovalev - * --------------------------------------------------------------------------------- - * Full plugin development. - * - * Email: alex.kovalevv@gmail.com - * Personal card: https://alexkovalevv.github.io - * Personal repo: https://github.com/alexkovalevv - * --------------------------------------------------------------------------------- - * - * Artem Prihodko - * --------------------------------------------------------------------------------- - * Updates and fixes - * - * Email: webtemyk@yandex.ru - * GitHub: https://github.com/temyk - * --------------------------------------------------------------------------------- - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -/** - * ----------------------------------------------------------------------------- - * CHECK REQUIREMENTS - * Check compatibility with php and wp version of the user's site. As well as checking - * compatibility with other plugins from Webcraftic. - * ----------------------------------------------------------------------------- - */ - -require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' ); - -// @formatter:off -$wdan_plugin_info = [ - 'prefix' => 'wbcr_dan_', - 'plugin_name' => 'wbcr_dan', - 'plugin_title' => 'Webcraftic disable admin notices', - - // PLUGIN SUPPORT - 'support_details' => [ - 'url' => 'https://clearfy.pro/', - 'pages_map' => [ - 'support' => 'support', // {site}/support - 'docs' => 'docs', // {site}/docs, - 'pricing' => 'disable-admin-notices' - ] - ], - // PLUGIN PREMIUM SETTINGS - 'has_premium' => true, - 'license_settings' => [ - 'provider' => 'freemius', - 'slug' => 'disable-admin-notices-premium', - 'plugin_id' => '6456', - 'public_key' => 'pk_0570ec3c1b4100b9c9a0cbfe80f9f', - 'price' => 29, - 'has_updates' => true, - 'updates_settings' => [ - 'maybe_rollback' => true, - 'rollback_settings' => [ - 'prev_stable_version' => '0.0.0' - ] - ] - ], - - // PLUGIN SUBSCRIBE FORM - 'subscribe_widget' => true, - 'subscribe_settings' => [ 'group_id' => '105407140' ], - - // PLUGIN ADVERTS - 'render_adverts' => true, - 'adverts_settings' => [ - 'dashboard_widget' => false, // show dashboard widget (default: false) - 'right_sidebar' => true, // show adverts sidebar (default: false) - 'notice' => false, // show notice message (default: false) - ], - - // FRAMEWORK MODULES - 'load_factory_modules' => [ - [ 'libs/factory/bootstrap', 'factory_bootstrap_482', 'admin' ], - [ 'libs/factory/forms', 'factory_forms_480', 'admin' ], - [ 'libs/factory/pages', 'factory_pages_480', 'admin' ], - [ 'libs/factory/templates', 'factory_templates_134', 'all' ], - [ 'libs/factory/freemius', 'factory_freemius_170', 'all' ], - [ 'libs/factory/adverts', 'factory_adverts_159', 'admin' ], - //array('libs/factory/logger', 'factory_logger_149', 'all') - ] -]; - -$wdan_compatibility = new Wbcr_Factory480_Requirements( __FILE__, array_merge( $wdan_plugin_info, [ - 'plugin_already_activate' => defined( 'WDN_PLUGIN_ACTIVE' ), - 'required_php_version' => '7.0', - 'required_wp_version' => '4.8.0', - 'required_clearfy_check_component' => false -] ) ); - - - -/** - * If the plugin is compatible, then it will continue its work, otherwise it will be stopped, - * and the user will throw a warning. - */ -if ( ! $wdan_compatibility->check() ) { - return; -} - -/** - * ----------------------------------------------------------------------------- - * CONSTANTS - * Install frequently used constants and constants for debugging, which will be - * removed after compiling the plugin. - * ----------------------------------------------------------------------------- - */ - -// This plugin is activated -define( 'WDN_PLUGIN_ACTIVE', true ); -define( 'WDN_PLUGIN_VERSION', $wdan_compatibility->get_plugin_version() ); -define( 'WDN_PLUGIN_DIR', dirname( __FILE__ ) ); -define( 'WDN_PLUGIN_BASE', plugin_basename( __FILE__ ) ); -define( 'WDN_PLUGIN_URL', plugins_url( '', __FILE__ ) ); - - - -/** - * ----------------------------------------------------------------------------- - * PLUGIN INIT - * ----------------------------------------------------------------------------- - */ - -require_once( WDN_PLUGIN_DIR . '/libs/factory/core/boot.php' ); -require_once( WDN_PLUGIN_DIR . '/includes/functions.php' ); -require_once( WDN_PLUGIN_DIR . '/includes/class-plugin.php' ); - -try { - new WDN_Plugin( __FILE__, array_merge( $wdan_plugin_info, [ - 'plugin_version' => WDN_PLUGIN_VERSION, - 'plugin_text_domain' => $wdan_compatibility->get_text_domain(), - ] ) ); -} catch ( Exception $e ) { - // Plugin wasn't initialized due to an error - define( 'WDN_PLUGIN_THROW_ERROR', true ); - - $wdan_plugin_error_func = function () use ( $e ) { - $error = sprintf( "The %s plugin has stopped. Error: %s Code: %s", 'Disable Admin Notices', $e->getMessage(), $e->getCode() ); - echo '

      ' . $error . '

      '; - }; - - add_action( 'admin_notices', $wdan_plugin_error_func ); - add_action( 'network_admin_notices', $wdan_plugin_error_func ); -} -// @formatter:on \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/3rd-party/class-clearfy-plugin.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/3rd-party/class-clearfy-plugin.php deleted file mode 100644 index e3525c6e..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/3rd-party/class-clearfy-plugin.php +++ /dev/null @@ -1,79 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WDN_Plugin { - - /** - * @var WCL_Plugin - */ - private static $app; - - /** - * Конструктор - * Вы - * - * @author Alexander Kovalev - * @throws \Exception - */ - public function __construct() { - if ( ! class_exists( 'WCL_Plugin' ) ) { - throw new Exception( 'Plugin Clearfy is not installed!' ); - } - - self::$app = WCL_Plugin::app(); - - $this->globalScripts(); - - if ( is_admin() ) { - $this->adminScripts(); - } - } - - /** - * @return WCL_Plugin - */ - public static function app() { - return self::$app; - } - - /** - * Выполняет сценарии, которые должны быть запущены только в бекенде - * - * @author Alexander Kovalev - * @since 1.1.0 - */ - private function adminScripts() { - require( WDN_PLUGIN_DIR . '/admin/options.php' ); - - if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { - require( WDN_PLUGIN_DIR . '/admin/ajax/hide-notice.php' ); - require( WDN_PLUGIN_DIR . '/admin/ajax/restore-notice.php' ); - } - - require( WDN_PLUGIN_DIR . '/admin/boot.php' ); - } - - /** - * Выполняет сценрии, которые должны быть запущены глобально - * - * @author Alexander Kovalev - * @since 1.1.0 - */ - private function globalScripts() { - require( WDN_PLUGIN_DIR . '/includes/classes/class-configurate-notices.php' ); - new WDN_ConfigHideNotices( self::$app ); - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/class-plugin.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/class-plugin.php deleted file mode 100644 index 6dd131ae..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/class-plugin.php +++ /dev/null @@ -1,113 +0,0 @@ - - * Github: https://github.com/alexkovalevv - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -//use WBCR\Factory_Adverts_159\Base; - -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WDN_Plugin extends Wbcr_Factory480_Plugin { - - /** - * @var Wbcr_Factory480_Plugin - */ - private static $app; - private $plugin_data; - - - /** - * @param string $plugin_path - * @param array $data - * - * @throws Exception - */ - public function __construct( $plugin_path, $data ) { - parent::__construct( $plugin_path, $data ); - - self::$app = $this; - $this->plugin_data = $data; - - $this->global_scripts(); - - if ( is_admin() ) { - $this->admin_scripts(); - } - - // Wordpress 6.7 fix - add_action( 'init', function () { - if ( is_admin() ) { - $this->register_pages(); - } - } ); - } - - /** - * @return Wbcr_Factory480_Plugin - */ - public static function app() { - return self::$app; - } - - private function register_pages() { - //self::app()->registerPage( 'WDN_Log_Page', WDN_PLUGIN_DIR . '/admin/pages/class-pages-log.php' ); - self::app()->registerPage( 'WDN_Settings_Page', WDN_PLUGIN_DIR . '/admin/pages/class-pages-settings.php' ); - - if ( ! ( $this->premium->is_activate() && $this->premium->is_install_package() ) ) { - self::app()->registerPage( 'WDAN_Notices', WDN_PLUGIN_DIR . '/admin/pages/class-pages-notices.php' ); - self::app()->registerPage( 'WDAN_Block_Ad_Redirects', WDN_PLUGIN_DIR . '/admin/pages/class-pages-edit-redirects.php' ); - self::app()->registerPage( 'WDAN_Edit_Admin_Bar', WDN_PLUGIN_DIR . '/admin/pages/class-pages-edit-admin-bar.php' ); - } - - self::app()->registerPage( 'WDN_LicensePage', WDN_PLUGIN_DIR . '/admin/pages/class-pages-license.php' ); - } - - private function admin_scripts() { - require( WDN_PLUGIN_DIR . '/admin/options.php' ); - require( WDN_PLUGIN_DIR . '/admin/class-page-basic.php' ); - - if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { - require_once( WDN_PLUGIN_DIR . '/admin/ajax/hide-notice.php' ); - require_once( WDN_PLUGIN_DIR . '/admin/ajax/restore-notice.php' ); - } - - require_once( WDN_PLUGIN_DIR . '/admin/boot.php' ); - require_once( WDN_PLUGIN_DIR . '/admin/pages/class-pages-edit-admin-bar.php' ); - require_once( WDN_PLUGIN_DIR . '/admin/pages/class-pages-edit-redirects.php' ); - require_once( WDN_PLUGIN_DIR . '/admin/pages/class-pages-notices.php' ); - - /*add_action( 'plugins_loaded', function () { - $this->register_pages(); - }, 30 );*/ - } - - private function global_scripts() { - require_once( WDN_PLUGIN_DIR . '/includes/classes/class-configurate-notices.php' ); - new WDN_ConfigHideNotices( self::$app ); - } - - /** - * Метод проверяет активацию премиум плагина и наличие действующего лицензионнного ключа - * - * @return bool - */ - public function is_premium() { - if ( - $this->premium->is_active() && - $this->premium->is_activate() - && $this->premium->is_install_package() - ) { - return true; - } else { - return false; - } - } -} diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/classes/class-configurate-notices.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/classes/class-configurate-notices.php deleted file mode 100644 index 05e30a11..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/classes/class-configurate-notices.php +++ /dev/null @@ -1,381 +0,0 @@ - - * @copyright (c) 2018 Webraftic Ltd - * @version 1.0 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -class WDN_ConfigHideNotices extends WBCR\Factory_Templates_134\Configurate { - - public function registerActionsAndFilters() { - if ( is_admin() ) { - $hide_notices_type = $this->getPopulateOption( 'hide_admin_notices', 'only_selected' ); - - if ( 'not_hide' !== $hide_notices_type && 'compact_panel' !== $hide_notices_type ) { - add_action( 'admin_print_scripts', [ $this, 'catchNotices' ], 999 ); - - if ( empty( $hide_notices_type ) || $hide_notices_type == 'only_selected' ) { - add_action( 'admin_head', [ $this, 'printNotices' ], 999 ); - } - - if ( ! empty( $hide_notices_type ) ) { - add_action( 'admin_bar_menu', [ $this, 'notificationsPanel' ], 999 ); - add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] ); - } - } - } - } - - public function printNotices() { - if ( is_multisite() && is_network_admin() ) { - add_action( 'network_admin_notices', [ $this, 'noticesCollection' ] ); - } else { - add_action( 'admin_notices', [ $this, 'noticesCollection' ] ); - } - } - - - public function enqueue_styles() { - wp_enqueue_style( 'wbcr-notification-hide-style', WDN_PLUGIN_URL . '/admin/assets/css/general.css', [], $this->plugin->getPluginVersion() ); - - if ( ! $this->getPopulateOption( 'show_notices_in_adminbar', false ) && current_user_can( 'manage_network' ) ) { - return; - } - wp_enqueue_style( 'wbcr-notification-panel-styles', WDN_PLUGIN_URL . '/admin/assets/css/notifications-panel.css', [], $this->plugin->getPluginVersion() ); - wp_enqueue_script( 'wbcr-notification-panel-scripts', WDN_PLUGIN_URL . '/admin/assets/js/notifications-panel.js', [], $this->plugin->getPluginVersion() ); - } - - public function notificationsPanel( &$wp_admin_bar ) { - if ( ! $this->getPopulateOption( 'show_notices_in_adminbar', false ) ) { - return; - } - - if ( current_user_can( 'manage_options' ) ) { - $notifications_user = get_user_meta( get_current_user_id(), $this->plugin->getOptionName( 'hidden_notices' ), true ); - $notifications_all = apply_filters( 'wdan/notifications/all', [] ); - - if ( ! is_array( $notifications_user ) ) { - $notifications_user = []; - } - - if ( empty( $notifications_user ) && empty( $notifications_all ) ) { - return; - } - - $cont_notifications = sizeof( $notifications_user ) + sizeof( $notifications_all ); - - // Add top menu - $wp_admin_bar->add_menu( [ - 'id' => 'wbcr-han-notify-panel', - 'parent' => 'top-secondary', - 'title' => sprintf( __( 'Notifications %s', 'disable-admin-notices' ), '' . $cont_notifications . '' ), - 'href' => $this->plugin->getPluginPageUrl( 'wdan-notices' ) - ] ); - - $i = 0; - - // User - if ( ! empty( $notifications_user ) ) { - $wp_admin_bar->add_menu( [ - 'id' => 'wbcr-han-notify-panel-group-user', - 'parent' => 'wbcr-han-notify-panel', - 'title' => __( 'Hidden for you', 'disable-admin-notices' ), - 'href' => false, - 'meta' => [ - 'class' => '' - ] - ] ); - - foreach ( $notifications_user as $notice_id => $message ) { - $message = wp_kses( $message, [] ); - $message = $this->getExcerpt( stripslashes( $message ), 0, 350 ); - $message .= ''; - - $wp_admin_bar->add_menu( [ - 'id' => 'wbcr-han-notify-panel-item-' . $i, - 'parent' => 'wbcr-han-notify-panel', - 'title' => $message, - 'href' => false, - 'meta' => [ - 'class' => '' - ] - ] ); - - $i ++; - } - } - - if ( $this->plugin->is_premium() && ( current_user_can( 'manage_options' ) || ( is_multisite() && current_user_can( 'manage_network' ) ) ) ) { - // All - do_action( 'wdn/notifications/panel/all', $wp_admin_bar, $notifications_all, $i ); - } - } - } - - public function noticesCollection() { - global $wbcr_dan_plugin_all_notices; - - if ( empty( $wbcr_dan_plugin_all_notices ) ) { - return; - } - ?> - - - array_merge( $wp_filter_admin_notices, $wp_filter_all_admin_notices ); - } catch ( Exception $e ) { - $wp_filter_notices = null; - } - - $hide_notices_type = $this->getPopulateOption( 'hide_admin_notices' ); - - if ( empty( $hide_notices_type ) || $hide_notices_type == 'only_selected' ) { - $get_hidden_notices = get_user_meta( get_current_user_id(), $this->plugin->getOptionName( 'hidden_notices' ), true ); - $get_hidden_notices_all = apply_filters( 'wdan/notifications/all', [] ); - - $content = []; - foreach ( (array) $wp_filter_notices as $filters ) { - foreach ( $filters as $callback_name => $callback ) { - - if ( 'usof_hide_admin_notices_start' == $callback_name || 'usof_hide_admin_notices_end' == $callback_name ) { - continue; - } - - ob_start(); - - // #CLRF-140 fix bug for php7 - // when the developers forgot to delete the argument in the function of implementing the notification. - $args = []; - $accepted_args = isset( $callback['accepted_args'] ) && ! empty( $callback['accepted_args'] ) ? $callback['accepted_args'] : 0; - - if ( $accepted_args > 0 ) { - for ( $i = 0; $i < (int) $accepted_args; $i ++ ) { - $args[] = null; - } - } - //=========== - - call_user_func_array( $callback['function'], $args ); - $cont = ob_get_clean(); - - if ( empty( $cont ) ) { - continue; - } - - $salt = is_multisite() ? get_current_blog_id() : ''; - $txt = preg_replace( '/<(script|style)([^>]+)?>(.*?)<\/(script|style)>/is', '', $cont ); - $uniq_id1 = md5( strip_tags( str_replace( [ "\t", "\r", "\n", " " ], "", $txt ) ) . $salt ); - $uniq_id2 = md5( $callback_name . $salt ); - - if ( is_array( $callback['function'] ) && sizeof( $callback['function'] ) == 2 ) { - $class = $callback['function'][0]; - if ( is_object( $class ) ) { - $class_name = get_class( $class ); - $method_name = $callback['function'][1]; - $uniq_id2 = md5( $class_name . ':' . $method_name ); - } - } - //$txt = rtrim( trim( $txt ) ); - //$txt = preg_replace( '/^(]+>)(.*?)(<\/div>)$/is', '

      $2

      ', $txt ); - - // All - $skip_notice = apply_filters( 'wdn/notifications/catch/all', true, $get_hidden_notices_all, $uniq_id1, $uniq_id2 ); - if ( ! $skip_notice ) { - continue; - } - - if ( ! empty( $get_hidden_notices ) ) { - $skip_notice = true; - foreach ( (array) $get_hidden_notices as $key => $notice ) { - $splited_notice_id = explode( '_', $key ); - if ( empty( $splited_notice_id ) || sizeof( $splited_notice_id ) < 2 ) { - continue; - } - $compare_notice_id_1 = $splited_notice_id[0]; - $compare_notice_id_2 = $splited_notice_id[1]; - - if ( $compare_notice_id_1 == $uniq_id1 || $compare_notice_id_2 == $uniq_id2 ) { - $skip_notice = false; - break; - } - } - - if ( ! $skip_notice ) { - continue; - } - } - - $nonce = wp_create_nonce( $this->plugin->getPluginName() . '_ajax_hide_notices_nonce' ); - $hide_link_for_me = ""; - $hide_link_for_all = ""; - - if ( $this->plugin->is_premium() && ( current_user_can( 'manage_options' ) || ( is_multisite() && current_user_can( 'manage_network' ) ) ) ) { - $hide_link_for_all = ""; - } - - if ( strpos( $cont, 'redux-connect-message' ) ) { - $a = 1; - } - - // Fix for Woocommerce membership and Jetpack message - if ( $cont != '
      ' && false === strpos( $cont, 'jetpack-jitm-message' ) ) { - $cont = preg_replace( '/<(noscript|script|style)([^>]+)?>(.*?)<\/(noscript|script|style)>(<\/(noscript|script|style)>)*/is', '', $cont ); - $cont = preg_replace( '//is', '', $cont ); - $cont = rtrim( trim( $cont ) ); - $cont = preg_replace( '/^(]+>)(.*?)(<\/div>)$/is', - "$1
      $2
      $3", $cont ); - } - - if ( empty( $cont ) ) { - continue; - } - $content[] = $cont; - } - } - - $wbcr_dan_plugin_all_notices = $content; - } - - wdan_clear_all_notices( 'user_admin_notices' ); - wdan_clear_all_notices( 'network_admin_notices' ); - wdan_clear_all_notices( 'admin_notices', [ - 'Learndash_Admin_Menus_Tabs', - 'WC_Memberships_Admin', - 'YIT_Plugin_Panel_WooCommerce' - ], [ 'et_pb_export_layouts_interface' ] ); - - wdan_clear_all_notices( 'all_admin_notices', [ - 'Learndash_Admin_Menus_Tabs', - 'WC_Memberships_Admin', - 'YIT_Plugin_Panel_WooCommerce' - ], [ 'et_pb_export_layouts_interface' ] ); - } - - - /** - * Get excerpt from string - * - * @param String $str String to get an excerpt from - * @param Integer $startPos Position int string to start excerpt from - * @param Integer $maxLength Maximum length the excerpt may be - * - * @return String excerpt - */ - public - function getExcerpt( - $str, $startPos = 0, $maxLength = 100 - ) { - if ( strlen( $str ) > $maxLength ) { - $excerpt = substr( $str, $startPos, $maxLength - 3 ); - $lastSpace = strrpos( $excerpt, ' ' ); - $excerpt = substr( $excerpt, 0, $lastSpace ); - $excerpt .= '...'; - } else { - $excerpt = $str; - } - - return $excerpt; - } - - /** - * @param array $arr1 - * @param array $arr2 - * - * @return array - */ - protected - function array_merge( - array $arr1, array $arr2 - ) { - if ( ! empty( $arr2 ) ) { - foreach ( $arr2 as $key => $value ) { - if ( ! isset( $arr1[ $key ] ) ) { - $arr1[ $key ] = $value; - } else if ( is_array( $arr1[ $key ] ) ) { - $arr1[ $key ] = $arr1[ $key ] + $value; - } - } - } - - return $arr1; - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/classes/index.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/classes/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/functions.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/functions.php deleted file mode 100644 index 3a798a3f..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/functions.php +++ /dev/null @@ -1,122 +0,0 @@ - - * @copyright (c) 05.07.2020, Webcraftic - * @version 1.0 - */ - -/** - * Access to global variable $wp_filter in WP core. - * Migration from WP 4.2 to 4.9 - * - * @see https://codex.wordpress.org/Version_4.7 WP 4.7 changelog (WP_Hook) - * - * @param $key string filter name - * - * @return array callbacks array by link - */ -function &wdan_get_wp_filter( $key ) { - global $wp_filter; - - $default = []; - - if ( 'admin_notices' === $key && is_multisite() && is_network_admin() ) { - $key = 'network_admin_notices'; - } - - if ( ! isset( $wp_filter[ $key ] ) ) { - return $default; - } - - return $wp_filter[ $key ]->callbacks; -} - -/** - * @param $key - * - * @return array - */ -function wdan_collect_notices( $key ) { - $wp_filter = &wdan_get_wp_filter( $key ); - - $content = []; - - if ( ! empty( $wp_filter ) ) { - foreach ( (array) $wp_filter as $filters ) { - foreach ( $filters as $callback_name => $callback ) { - - if ( 'usof_hide_admin_notices_start' == $callback_name || 'usof_hide_admin_notices_end' == $callback_name ) { - continue; - } - - ob_start(); - - // #CLRF-140 fix bug for php7 - // when the developers forgot to delete the argument in the function of implementing the notification. - $args = []; - $accepted_args = isset( $callback['accepted_args'] ) && ! empty( $callback['accepted_args'] ) ? $callback['accepted_args'] : 0; - - if ( $accepted_args > 0 ) { - for ( $i = 0; $i < (int) $accepted_args; $i ++ ) { - $args[] = null; - } - } - //=========== - - call_user_func_array( $callback['function'], $args ); - $cont = ob_get_clean(); - - if ( ! empty( $cont ) ) { - $salt = is_multisite() ? get_current_blog_id() : ''; - $uniq_id1 = md5( $cont . $salt ); - $uniq_id2 = md5( $callback_name . $salt ); - - if ( is_array( $callback['function'] ) && sizeof( $callback['function'] ) == 2 ) { - $class = $callback['function'][0]; - if ( is_object( $class ) ) { - $class_name = get_class( $class ); - $method_name = $callback['function'][1]; - $uniq_id2 = md5( $class_name . ':' . $method_name ); - } - } - - $content[ $uniq_id1 . "_" . $uniq_id2 ] = $cont; - } - } - } - } - - return $content; -} - -/** - * @param $key - * @param array $excluded_classes - * @param array $excluded_callback_names - */ -function wdan_clear_all_notices( $key, $excluded_classes = [], $excluded_callback_names = [] ) { - $wp_filter = &wdan_get_wp_filter( $key ); - - if ( ! empty( $wp_filter ) ) { - foreach ( (array) $wp_filter as $f_key => $f ) { - foreach ( $f as $c_name => $clback ) { - if ( is_array( $clback['function'] ) && sizeof( $clback['function'] ) == 2 ) { - $class = $clback['function'][0]; - if ( is_object( $class ) ) { - $class_name = get_class( $class ); - - if ( in_array( $class_name, $excluded_classes ) ) { - continue; - } - } - } - - if ( in_array( $c_name, $excluded_callback_names ) ) { - continue; - } - unset( $wp_filter[ $f_key ][ $c_name ] ); - } - } - } -} \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/index.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/includes/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.mo b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.mo deleted file mode 100644 index b4ed2d4c..00000000 Binary files a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.po b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.po deleted file mode 100644 index 92cbbd32..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-es_ES.po +++ /dev/null @@ -1,182 +0,0 @@ -# Translation of Plugins - Clearfy in Spanish (Spain) -# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-04-28 06:26+0300\n" -"PO-Revision-Date: 2019-04-28 06:26+0300\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/ajax/hide-notice.php:24 admin/ajax/restore-notice.php:22 -msgid "Undefinded notice id." -msgstr "Aviso de ID indefinido" - -#: admin/ajax/hide-notice.php:40 admin/ajax/restore-notice.php:36 -msgid "You don't have enough capability to edit this information." -msgstr "No tienes suficiente permisos para editar esta información." - -#: admin/boot.php:18 admin/options.php:30 admin/pages/notices.php:38 -msgid "Hide admin notices" -msgstr "Ocultar avisos administrativos" - -#: admin/boot.php:24 admin/options.php:103 -msgid "Enable hidden notices in adminbar" -msgstr "Habilitar avisos ocultos en la barra de administración" - -#: admin/boot.php:46 -msgid "Get ultimate plugin free" -msgstr "Obtener el ultimate plugin gratis" - -#: admin/options.php:23 -msgid "Admin notifications, Update nags" -msgstr "Notificaciones de administrador, actualización de nags" - -#: admin/options.php:23 -msgid "" -"Do you know the situation, when some plugin offers you to update to premium, " -"to collect technical data and shows many annoying notices? You are close " -"these notices every now and again but they newly appears and interfere your " -"work with WordPress. Even worse, some plugin’s authors delete “close” button " -"from notices and they shows in your admin panel forever." -msgstr "" -"¿Conoces la situación cuando algún plugin te ofrece actualizar a Premium, " -"recopilar datos técnicos y mostrar muchos avisos molestos? A veces no están, " -"pero aparecen de nuevo e interfieren en tu trabajo con WordPress. Peor aún, " -"los autores de algunos plugin eliminan el botón \"cerrar\" de las " -"notificaciones y se muestran en su panel de administración para siempre." - -#: admin/options.php:34 -msgid "All notices" -msgstr "Todos los avisos" - -#: admin/options.php:35 -msgid "Hide all notices globally." -msgstr "Ocultar todos los avisos globalmente." - -#: admin/options.php:39 -msgid "Only selected" -msgstr "Solo seleccionados" - -#: admin/options.php:40 -msgid "" -"Hide selected notices only. You will see the link \"Hide notification forever" -"\" in each notice. Push it and they will not bother you anymore." -msgstr "" -"Ocultar solo los avisos seleccionados. Verá el enlace \"Ocultar notificación " -"para siempre\" en cada aviso. Click y ya no los veras mas." - -#: admin/options.php:44 -msgid "Don't nide" -msgstr "No ocultar" - -#: admin/options.php:45 -msgid "" -"Do not hide notices and do not show “Hide notification forever” link for " -"admin." -msgstr "" -"No ocultar avisos y no mostrar el enlace \"Ocultar notificación para siempre" -"\" para el administrador." - -#: admin/options.php:49 -msgid "" -"Some plugins shows notifications about premium version, data collecting or " -"promote their services. Even if you push close button (that sometimes are " -"impossible), notices are shows again in some time. This option allows you to " -"control notices. Hide them all or each individually. Some plugins shows " -"notifications about premium version, data collecting or promote their " -"services. Even if you push close button (that sometimes are impossible), " -"notices are shows again in some time. This option allows you to control " -"notices. Hide them all or each individually." -msgstr "" -"Algunos plugin muestran notificaciones sobre la versión premium: " -"Recopilación de datos o la promoción de sus servicios; Incluso si presiona " -"el botón de cierre (que a veces es imposible), las notificaciones se " -"muestran de nuevo en algún momento. Esta opción le permite controlar avisos. " -"Ocúltelas todas o cada una individualmente." - -#: admin/options.php:105 -msgid "" -"By default, the plugin hides all notices, which you specified. If you enable " -"this option, the plugin will collect all hidden notices and show them into " -"the top admin toolbar. It will not disturb you but will allow to look " -"notices at your convenience." -msgstr "" -"Por defecto, el plugin oculta todos los avisos que especificó. Si habilita " -"esta opción, el plugin recopilará todos los avisos ocultos y los mostrará en " -"la barra superior de administración de herramientas. No le molestará, pero " -"le permitirá ver los avisos según su conveniencia." - -#: admin/options.php:166 -msgid "Reset hidden notices for" -msgstr "Restablecer avisos ocultos para" - -#: admin/options.php:167 -msgid "Push reset hidden notices if you need to show hidden notices again." -msgstr "Pulse reiniciar avisos ocultos si necesita mostrarlos de nuevo." - -#: admin/options.php:177 -msgid "current user" -msgstr "usuario actual" - -#: admin/options.php:181 -msgid "all users" -msgstr "todos los usuarios" - -#: admin/options.php:185 -msgid "Reset notices" -msgstr "Restablecer avisos" - -#: admin/options.php:188 admin/pages/notices.php:71 -msgid "Hidden notices are successfully reset, now you can see them again!" -msgstr "" -"Los avisos ocultos se restablecieron con éxito, ¡ahora puedes verlos " -"nuevamente!" - -#: admin/pages/notices.php:54 -msgid "Notices" -msgstr "Avisos" - -#: admin/pages/notices.php:55 -msgid "General" -msgstr "General" - -#: disable-admin-notices.php:84 -msgid "Webcraftic disable admin notices" -msgstr "Deshabilitar los avisos Webcraftic de administración" - -#: includes/classes/class.configurate-notices.php:74 -#, php-format -msgid "Notifications %s" -msgstr "Notificaciones %s" - -#: includes/classes/class.configurate-notices.php:86 -msgid "Restore notice" -msgstr "Aviso de restauración" - -#: includes/classes/class.configurate-notices.php:285 -msgid "Hide notification forever" -msgstr "Ocultar notificaciones para siempre" - -#~ msgid "Assets Manager" -#~ msgstr "Gestor de Activos" - -#~ msgid "Settings has been successfully imported!" -#~ msgstr "¡Configuración importada exitosamente!" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.mo b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.mo deleted file mode 100644 index b89e5c0b..00000000 Binary files a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.po b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.po deleted file mode 100644 index 9f421e10..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-nl_BE.po +++ /dev/null @@ -1,173 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Clearfy\n" -"POT-Creation-Date: 2018-09-06 18:31+0300\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: nl_BE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/ajax/hide-notice.php:19 admin/ajax/restore-notice.php:19 -msgid "You don't have enough capability to edit this information." -msgstr "Je hebt niet voldoende mogelijkheden om deze informatie te bewerken." - -#: admin/ajax/hide-notice.php:32 admin/ajax/restore-notice.php:28 -msgid "Undefinded notice id." -msgstr "Ongedefinieerde mededeling id." - -#: admin/ajax/hide-notice.php:46 admin/ajax/restore-notice.php:40 -msgid "Success" -msgstr "Succes" - -#: admin/boot.php:18 admin/options.php:30 admin/pages/notices.php:33 -msgid "Hide admin notices" -msgstr "Verberg admin meldingen" - -#: admin/boot.php:24 admin/options.php:70 -msgid "Enable hidden notices in adminbar" -msgstr "Schakel verborgen meldingen in de beheer balk in" - -#: admin/boot.php:46 -msgid "Get ultimate plugin free" -msgstr "Krijg ultieme plugin gratis" - -#: admin/options.php:23 -msgid "Admin notifications, Update nags" -msgstr "Admin mededelingen, Update meldingen" - -#: admin/options.php:23 -msgid "" -"Do you know the situation, when some plugin offers you to update to premium, " -"to collect technical data and shows many annoying notices? You are close these " -"notices every now and again but they newly appears and interfere your work " -"with WordPress. Even worse, some plugin’s authors delete “close” button from " -"notices and they shows in your admin panel forever." -msgstr "" -"Herkent u de situatie, waarin sommige plugins u aanbieden om te updaten naar " -"premium, om technische gegevens te verzamelen en veel vervelende meldingen " -"weergeven? Zo nu en dan sluit u deze meldingen, maar ze verschijnen keer op " -"keer opnieuw en belemmeren uw werk met WordPress. Erger nog, de auteurs van " -"sommige plugins verwijderen de knop \"Sluiten\" uit meldingen en blijven " -"continu zichtbaar in uw beheer venster." - -#: admin/options.php:34 -msgid "All notices" -msgstr "Alle mededelingen" - -#: admin/options.php:35 -msgid "Hide all notices globally." -msgstr "Alle meldingen globaal verbergen." - -#: admin/options.php:39 -msgid "Only selected" -msgstr "Enkel geselecteerd" - -#: admin/options.php:40 -msgid "" -"Hide selected notices only. You will see the link \"Hide notification forever" -"\" in each notice. Push it and they will not bother you anymore." -msgstr "" -"Slechts bepaalde meldingen verbergen. U ziet in elke melding de link \"Verberg " -"melding voor altijd\". Klik erop en ze zullen je niet meer lastig vallen." - -#: admin/options.php:44 -msgid "Don't nide" -msgstr "Niet verbergen" - -#: admin/options.php:45 -msgid "" -"Do not hide notices and do not show “Hide notification forever” link for admin." -msgstr "" -"Meldingen niet verbergen en laat de link 'Verberg melding voor altijd' niet " -"zien voor beheerder." - -#: admin/options.php:49 -msgid "" -"Some plugins shows notifications about premium version, data collecting or " -"promote their services. Even if you push close button (that sometimes are " -"impossible), notices are shows again in some time. This option allows you to " -"control notices. Hide them all or each individually. Some plugins shows " -"notifications about premium version, data collecting or promote their " -"services. Even if you push close button (that sometimes are impossible), " -"notices are shows again in some time. This option allows you to control " -"notices. Hide them all or each individually." -msgstr "" -"Sommige plugins tonen meldingen over de premium versie, het verzamelen van " -"gegevens of het promoten van hun diensten. Zelfs als je op afsluiten klikt " -"(wat soms niet eens mogelijk is), worden mededelingen binnen afzienbare tijd " -"opnieuw getoond. Met deze optie kunt u mededelingen beheren. Verberg ze " -"allemaal of elk afzonderlijk." - -#: admin/options.php:72 -msgid "" -"By default, the plugin hides all notices, which you specified. If you enable " -"this option, the plugin will collect all hidden notices and show them into the " -"top admin toolbar. It will not disturb you but will allow to look notices at " -"your convenience." -msgstr "" -"Standaard verbergt de plugin alle kennisgevingen die u hebt opgegeven. Als u " -"deze optie inschakelt, verzamelt de plugin alle verborgen mededelingen en " -"toont deze in de bovenste beheer werkbalk. Het zal niet storend zijn, maar zal " -"je toelaten om aankondigingen op je gemak te bekijken." - -#: admin/options.php:136 -msgid "Push reset hidden notices if you need to show hidden notices again." -msgstr "" -"Druk op reset verborgen mededelingen als u verborgen mededelingen opnieuw wilt " -"weergeven." - -#: admin/options.php:145 -#, php-format -msgid "Reset hidden notices (%s)" -msgstr "Reset verborgen mededelingen (%s)" - -#: admin/options.php:147 admin/pages/notices.php:85 -msgid "Hidden notices are successfully reset, now you can see them again!" -msgstr "Verborgen meldingen zijn succesvol gereset, nu kun je ze opnieuw zien!" - -#: admin/pages/notices.php:49 -msgid "Notices" -msgstr "Mededelingen" - -#: admin/pages/notices.php:50 -msgid "General" -msgstr "Algemeen" - -#: disable-admin-notices.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Disable admin notices\"!" -msgstr "" - -#: disable-admin-notices.php:80 -msgid "Webcraftic disable admin notices" -msgstr "Webcraftic uitschakelen admin mededelingen" - -#: includes/classes/class.configurate-notices.php:79 -#, php-format -msgid "Notifications %s" -msgstr "Meldingen %s" - -#: includes/classes/class.configurate-notices.php:88 -msgid "Restore notice" -msgstr "Herstel mededelingen" - -#: includes/classes/class.configurate-notices.php:267 -msgid "Hide notification forever" -msgstr "Verberg melding voor altijd" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.mo b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.mo deleted file mode 100644 index 37b34187..00000000 Binary files a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.po b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.po deleted file mode 100644 index b615a8d2..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-pt_BR.po +++ /dev/null @@ -1,181 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2018-09-06 18:31+0300\n" -"PO-Revision-Date: 2018-09-06 18:31+0300\n" -"Last-Translator: alex.kovalevv@gmail.com \n" -"Language-Team: Alex Kovalev \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"X-Poedit-SearchPathExcluded-1: components\n" -"X-Poedit-SearchPathExcluded-2: cache\n" - -#: admin/ajax/hide-notice.php:19 admin/ajax/restore-notice.php:19 -msgid "You don't have enough capability to edit this information." -msgstr "Você não tem capacidade suficiente para editar essas informações." - -#: admin/ajax/hide-notice.php:32 admin/ajax/restore-notice.php:28 -msgid "Undefinded notice id." -msgstr "ID de aviso não identificada." - -#: admin/ajax/hide-notice.php:46 admin/ajax/restore-notice.php:40 -msgid "Success" -msgstr "Sucesso" - -#: admin/boot.php:18 admin/options.php:30 admin/pages/notices.php:33 -msgid "Hide admin notices" -msgstr "Ocultar avisos de administrador" - -#: admin/boot.php:24 admin/options.php:70 -msgid "Enable hidden notices in adminbar" -msgstr "Ativar avisos ocultos no adminbar" - -#: admin/boot.php:46 -msgid "Get ultimate plugin free" -msgstr "Obtenha o melhor plugin grátis" - -#: admin/options.php:23 -msgid "Admin notifications, Update nags" -msgstr "Notificações de administrador, Atualizações nags" - -#: admin/options.php:23 -msgid "" -"Do you know the situation, when some plugin offers you to update to premium, " -"to collect technical data and shows many annoying notices? You are close " -"these notices every now and again but they newly appears and interfere your " -"work with WordPress. Even worse, some plugin’s authors delete “close” button " -"from notices and they shows in your admin panel forever." -msgstr "" -"Você conhece a situação, quando algum plugin lhe oferece para atualizar para " -"premium, para coletar dados técnicos e mostra muitos avisos irritantes? Você " -"está próximo desses avisos de vez em quando, mas eles aparecem recentemente " -"e interferem no seu trabalho com o WordPress. Pior ainda, alguns autores de " -"plug-in excluem o botão “fechar” dos avisos e eles são exibidos no seu " -"painel de administração para sempre." - -#: admin/options.php:34 -msgid "All notices" -msgstr "Todos os avisos" - -#: admin/options.php:35 -msgid "Hide all notices globally." -msgstr "Esconda todos os avisos globalmente." - -#: admin/options.php:39 -msgid "Only selected" -msgstr "Apenas selecionado" - -#: admin/options.php:40 -msgid "" -"Hide selected notices only. You will see the link \"Hide notification forever" -"\" in each notice. Push it and they will not bother you anymore." -msgstr "" -"Ocultar apenas avisos selecionados. Você verá o link \"Ocultar notificação " -"para sempre\" em cada aviso. Empurre-o e eles não vão incomodá-lo mais." - -#: admin/options.php:44 -msgid "Don't nide" -msgstr "Não nide" - -#: admin/options.php:45 -msgid "" -"Do not hide notices and do not show “Hide notification forever” link for " -"admin." -msgstr "" -"Não oculte avisos e não mostre o link \"Ocultar notificação para sempre\" " -"para o administrador." - -#: admin/options.php:49 -msgid "" -"Some plugins shows notifications about premium version, data collecting or " -"promote their services. Even if you push close button (that sometimes are " -"impossible), notices are shows again in some time. This option allows you to " -"control notices. Hide them all or each individually. Some plugins shows " -"notifications about premium version, data collecting or promote their " -"services. Even if you push close button (that sometimes are impossible), " -"notices are shows again in some time. This option allows you to control " -"notices. Hide them all or each individually." -msgstr "" -"Alguns plugins mostram notificações sobre a versão premium, coleta de dados " -"ou promover seus serviços. Mesmo se você apertar o botão fechar (que às " -"vezes são impossíveis), os avisos são exibidos novamente em algum momento. " -"Esta opção permite controlar avisos. Esconda-os todos ou cada um " -"individualmente. Alguns plugins mostram notificações sobre a versão premium, " -"coleta de dados ou promover seus serviços. Mesmo se você apertar o botão " -"fechar (que às vezes são impossíveis), os avisos são exibidos novamente em " -"algum momento. Esta opção permite controlar avisos. Esconda-os todos ou cada " -"um individualmente." - -#: admin/options.php:72 -msgid "" -"By default, the plugin hides all notices, which you specified. If you enable " -"this option, the plugin will collect all hidden notices and show them into " -"the top admin toolbar. It will not disturb you but will allow to look " -"notices at your convenience." -msgstr "" -"Por padrão, o plug-in oculta todos os avisos especificados. Se você ativar " -"essa opção, o plug-in coletará todos os avisos ocultos e os mostrará na " -"barra de ferramentas superior do administrador. Não o incomodará, mas " -"permitirá que você veja avisos de acordo com sua conveniência." - -#: admin/options.php:136 -msgid "Push reset hidden notices if you need to show hidden notices again." -msgstr "" -"Envie os avisos ocultos redefinidos se precisar mostrar avisos ocultos " -"novamente." - -#: admin/options.php:145 -#, php-format -msgid "Reset hidden notices (%s)" -msgstr "Redefinir avisos ocultos ( %s )" - -#: admin/options.php:147 admin/pages/notices.php:85 -msgid "Hidden notices are successfully reset, now you can see them again!" -msgstr "" -"Avisos ocultos são redefinidos com sucesso, agora você pode vê-los novamente!" - -#: admin/pages/notices.php:49 -msgid "Notices" -msgstr "Avisos" - -#: admin/pages/notices.php:50 -msgid "General" -msgstr "Geral" - -#: disable-admin-notices.php:23 -msgid "" -"We found that you have the \"Clearfy - disable unused features\" plugin " -"installed, this plugin already has disable comments functions, so you can " -"deactivate plugin \"Disable admin notices\"!" -msgstr "" -"Descobrimos que você tem o plug-in \"Clearfy - desativar recursos não " -"utilizados \" instalado, este plugin já tem funções de desabilitar " -"comentários, então você pode desativar o plugin \"Desativar avisos do " -"administrador \"!" - -#: disable-admin-notices.php:80 -msgid "Webcraftic disable admin notices" -msgstr "Webcraftic desabilitar avisos de administração" - -#: includes/classes/class.configurate-notices.php:79 -#, php-format -msgid "Notifications %s" -msgstr "Notificações %s" - -#: includes/classes/class.configurate-notices.php:88 -msgid "Restore notice" -msgstr "Aviso de restauração" - -#: includes/classes/class.configurate-notices.php:267 -msgid "Hide notification forever" -msgstr "Ocultar a notificação para sempre" \ No newline at end of file diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.mo b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.mo deleted file mode 100644 index cfd1e38a..00000000 Binary files a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.mo and /dev/null differ diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.po b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.po deleted file mode 100644 index d8a9e4ae..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices-ru_RU.po +++ /dev/null @@ -1,256 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: clearfy\n" -"POT-Creation-Date: 2020-08-27 12:50+0000\n" -"PO-Revision-Date: 2020-08-27 12:54+0000\n" -"Last-Translator: \n" -"Language-Team: Русский\n" -"Language: ru_RU\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Loco https://localise.biz/\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: libs\n" -"Report-Msgid-Bugs-To: \n" -"X-Loco-Version: 2.4.2; wp-5.5" - -#: disable-admin-notices.php:46 -msgid "Webcraftic disable admin notices" -msgstr "Webcraftic отключить уведомления администратора" - -#: admin/boot.php:27 -msgid "Get ultimate plugin free" -msgstr "Получите полную версию плагина бесплатно" - -#: admin/boot.php:82 admin/options.php:66 -#: admin/pages/class-pages-settings.php:72 -msgid "Hide admin notices" -msgstr "Скрыть уведомления" - -#: admin/boot.php:88 admin/options.php:148 -msgid "Enable hidden notices in adminbar" -msgstr "Включить уведомления в админбаре" - -#: admin/class-page-basic.php:41 -msgid "Webcraftic Disable Admin Notices" -msgstr "Webcraftic Disable Admin Notices" - -#: admin/options.php:33 -msgid "Admin notifications, Update nags" -msgstr "Уведомления администратора, уведомления об обновлении Wordpress" - -#: admin/options.php:33 -msgid "" -"Do you know the situation, when some plugin offers you to update to premium, " -"to collect technical data and shows many annoying notices? You are close " -"these notices every now and again but they newly appears and interfere your " -"work with WordPress. Even worse, some plugin’s authors delete “close” button " -"from notices and they shows in your admin panel forever." -msgstr "" -"Вам знакома ситуация, когда какой-то плагин просит вас обновиться до премиум-" -"версии, получить права на сбор данных о вашем сайте и создает много " -"раздражающих уведомлений? Вы закрываете эти уведомления раз за разом, но они " -"вновь появляются и мешают вашей работе с WordPress. Хуже того, некоторые " -"авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и они висят в шапке " -"вашей панели администратора целую вечность." - -#: admin/options.php:39 -msgid "Don't hide" -msgstr "Не скрывать" - -#: admin/options.php:40 -msgid "" -"Do not hide notices and do not show “Hide notification forever” link for " -"admin." -msgstr "" -"Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление " -"навсегда\" в уведомлениях администратора." - -#: admin/options.php:44 -msgid "All notices" -msgstr "Все уведомления" - -#: admin/options.php:45 -msgid "Hide all notices globally." -msgstr "Скрыть все уведомления глобально." - -#: admin/options.php:45 admin/options.php:50 admin/options.php:58 -#, php-format -msgid "" -"Watch the video to find out how it " -"works ." -msgstr "" -"Посмотрите видео о том, как это " -"работает." - -#: admin/options.php:49 -msgid "Only selected" -msgstr "Только выбранные" - -#: admin/options.php:50 -msgid "" -"Hide selected notices only. You will see the link \"Hide notification " -"forever\" in each notice. Push it and they will not bother you anymore." -msgstr "" -"Скрывать только выбранные уведомления. В каждом уведомлении вы увидите " -"ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление будет " -"скрыто навсегда и перестанет вас беспокоить." - -#: admin/options.php:57 -msgid "Compact panel" -msgstr "Компактная панель" - -#: admin/options.php:58 -msgid "" -"Collapse all notifications in one line (panel with notification counters), " -"to see the notifications, you will need to click this panel." -msgstr "" -"Свернуть все уведомления в одну строку (панель со счетчиками уведомлений), " -"чтобы увидеть уведомления, вам нужно будет нажать на эту панель." - -#: admin/options.php:69 -msgid "" -"Some plugins shows notifications about premium version, data collecting or " -"promote their services. Even if you push close button (that sometimes are " -"impossible), notices are shows again in some time. This option allows you to " -"control notices. Hide them all or each individually. Some plugins shows " -"notifications about premium version, data collecting or promote their " -"services. Even if you push close button (that sometimes are impossible), " -"notices are shows again in some time. This option allows you to control " -"notices. Hide them all or each individually." -msgstr "" -"Зачастую, плагины отображают уведомления о возможности перехода на премиум " -"версию, просят разрешение на сбор данных, рекламируют свои услуги. Даже если " -"вы нажмете кнопку закрыть (что не всегда возможно), уведомления всё равно " -"отобразятся через какое-то время. С помощью этой настройки, вы можете " -"контролировать эти уведомления. Скройте их все сразу или каждое по " -"отдельности." - -#: admin/options.php:92 admin/options.php:94 -msgid "Disable plugins updates nags" -msgstr "Отключить уведомления об обновлении плагинов" - -#: admin/options.php:103 admin/options.php:105 -msgid "Disable core updates nags" -msgstr "Отключить уведомления об обновлении Wordpress" - -#: admin/options.php:150 -msgid "" -"By default, the plugin hides all notices, which you specified. If you enable " -"this option, the plugin will collect all hidden notices and show them into " -"the top admin toolbar. It will not disturb you but will allow to look " -"notices at your convenience." -msgstr "" -"По умолчанию, плагин полностью скрывает отключенные вами уведомления. Если " -"включить эту опцию, то плагин будет собирать все скрытые вами уведомления и " -"выводить в верхней панели администратора. Это не будет вас раздражать, но и " -"позволит просматривать уведомления, когда вам это удобно." - -#: admin/options.php:235 -msgid "Reset hidden notices for" -msgstr "Сброс скрытых уведомлений для" - -#: admin/options.php:238 -msgid "Push reset hidden notices if you need to show hidden notices again." -msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\"" - -#: admin/options.php:249 -msgid "current user" -msgstr "Текущий пользователь" - -#: admin/options.php:253 -msgid "all users" -msgstr "Все пользователи" - -#: admin/options.php:257 -msgid "Reset notices" -msgstr "Сбросить уведомления" - -#: admin/options.php:261 admin/pages/class-pages-settings.php:116 -msgid "Hidden notices are successfully reset, now you can see them again!" -msgstr "" -"Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть их!" - -#: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24 -msgid "Undefinded notice id." -msgstr "Не передан notice id." - -#: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45 -msgid "You don't have enough capability to edit this information." -msgstr "Вы не имеете разрешения на редактирование этого!" - -#: admin/pages/class-pages-edit-admin-bar.php:53 -msgid "Hide adminbar items" -msgstr "Меню админбара" - -#: admin/pages/class-pages-edit-admin-bar.php:54 -msgid "You can hide an annoying adminbar menu" -msgstr "Скрытие пунктов меню админбара" - -#: admin/pages/class-pages-edit-redirects.php:53 -msgid "Block ad redirects" -msgstr "Рекламные редиректы" - -#: admin/pages/class-pages-edit-redirects.php:54 -msgid "Break advertising redirects" -msgstr "Отключение рекламных редиректов" - -#: admin/pages/class-pages-notices.php:51 -msgid "Hidden notices" -msgstr "Скрытые нотисы" - -#: admin/pages/class-pages-notices.php:52 -msgid "Manage hidden notices" -msgstr "Управление скрытыми нотисами" - -#: admin/pages/class-pages-settings.php:73 -msgid "General settings" -msgstr "Основные настройки" - -#: admin/pages/class-pages-settings.php:85 -msgid "Settings" -msgstr "Настройки" - -#: includes/classes/class-configurate-notices.php:81 -#, php-format -msgid "Notifications %s" -msgstr "Уведомления %s" - -#: includes/classes/class-configurate-notices.php:92 -msgid "Hidden for you" -msgstr "Скрытые для Вас" - -#: includes/classes/class-configurate-notices.php:289 -msgid "Hide for me" -msgstr "Скрыть для меня" - -#: includes/classes/class-configurate-notices.php:293 -msgid "Hide for all" -msgstr "Скрыть для всех" - -#. Name of the plugin -msgid "Disable Admin Notices Individually" -msgstr "Disable Admin Notices Individually" - -#. Description of the plugin -msgid "" -"Disable admin notices plugin gives you the option to hide updates warnings " -"and inline notices in the admin panel." -msgstr "" -"Плагин Disable admin notices дает вам возможность скрыть предупреждения об " -"обновлениях и встроенные уведомления в панели администратора." - -#. URI of the plugin -#. Author URI of the plugin -msgid "https://webcraftic.com" -msgstr "https://webcraftic.com" - -#. Author of the plugin -msgid "Webcraftic " -msgstr "Webcraftic " diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices.pot b/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices.pot deleted file mode 100644 index 88a88e6e..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/languages/disable-admin-notices.pot +++ /dev/null @@ -1,223 +0,0 @@ -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Webcraftic Disable Admin Notices Individually\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-27 12:50+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: \n" -"Language: \n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Loco https://localise.biz/\n" -"X-Loco-Version: 2.4.2; wp-5.5" - -#: disable-admin-notices.php:46 -msgid "Webcraftic disable admin notices" -msgstr "" - -#: admin/boot.php:27 -msgid "Get ultimate plugin free" -msgstr "" - -#: admin/boot.php:82 admin/options.php:66 -#: admin/pages/class-pages-settings.php:72 -msgid "Hide admin notices" -msgstr "" - -#: admin/boot.php:88 admin/options.php:148 -msgid "Enable hidden notices in adminbar" -msgstr "" - -#: admin/class-page-basic.php:41 -msgid "Webcraftic Disable Admin Notices" -msgstr "" - -#: admin/options.php:33 -msgid "Admin notifications, Update nags" -msgstr "" - -#: admin/options.php:33 -msgid "" -"Do you know the situation, when some plugin offers you to update to premium, " -"to collect technical data and shows many annoying notices? You are close " -"these notices every now and again but they newly appears and interfere your " -"work with WordPress. Even worse, some plugin’s authors delete “close” button " -"from notices and they shows in your admin panel forever." -msgstr "" - -#: admin/options.php:39 -msgid "Don't hide" -msgstr "" - -#: admin/options.php:40 -msgid "" -"Do not hide notices and do not show “Hide notification forever” link for " -"admin." -msgstr "" - -#: admin/options.php:44 -msgid "All notices" -msgstr "" - -#: admin/options.php:45 -msgid "Hide all notices globally." -msgstr "" - -#: admin/options.php:45 admin/options.php:50 admin/options.php:58 -#, php-format -msgid "" -"Watch the video to find out how it " -"works ." -msgstr "" - -#: admin/options.php:49 -msgid "Only selected" -msgstr "" - -#: admin/options.php:50 -msgid "" -"Hide selected notices only. You will see the link \"Hide notification " -"forever\" in each notice. Push it and they will not bother you anymore." -msgstr "" - -#: admin/options.php:57 -msgid "Compact panel" -msgstr "" - -#: admin/options.php:58 -msgid "" -"Collapse all notifications in one line (panel with notification counters), " -"to see the notifications, you will need to click this panel." -msgstr "" - -#: admin/options.php:69 -msgid "" -"Some plugins shows notifications about premium version, data collecting or " -"promote their services. Even if you push close button (that sometimes are " -"impossible), notices are shows again in some time. This option allows you to " -"control notices. Hide them all or each individually. Some plugins shows " -"notifications about premium version, data collecting or promote their " -"services. Even if you push close button (that sometimes are impossible), " -"notices are shows again in some time. This option allows you to control " -"notices. Hide them all or each individually." -msgstr "" - -#: admin/options.php:92 admin/options.php:94 -msgid "Disable plugins updates nags" -msgstr "" - -#: admin/options.php:103 admin/options.php:105 -msgid "Disable core updates nags" -msgstr "" - -#: admin/options.php:150 -msgid "" -"By default, the plugin hides all notices, which you specified. If you enable " -"this option, the plugin will collect all hidden notices and show them into " -"the top admin toolbar. It will not disturb you but will allow to look " -"notices at your convenience." -msgstr "" - -#: admin/options.php:235 -msgid "Reset hidden notices for" -msgstr "" - -#: admin/options.php:238 -msgid "Push reset hidden notices if you need to show hidden notices again." -msgstr "" - -#: admin/options.php:249 -msgid "current user" -msgstr "" - -#: admin/options.php:253 -msgid "all users" -msgstr "" - -#: admin/options.php:257 -msgid "Reset notices" -msgstr "" - -#: admin/options.php:261 admin/pages/class-pages-settings.php:116 -msgid "Hidden notices are successfully reset, now you can see them again!" -msgstr "" - -#: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24 -msgid "Undefinded notice id." -msgstr "" - -#: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45 -msgid "You don't have enough capability to edit this information." -msgstr "" - -#: admin/pages/class-pages-edit-admin-bar.php:53 -msgid "Hide adminbar items" -msgstr "" - -#: admin/pages/class-pages-edit-admin-bar.php:54 -msgid "You can hide an annoying adminbar menu" -msgstr "" - -#: admin/pages/class-pages-edit-redirects.php:53 -msgid "Block ad redirects" -msgstr "" - -#: admin/pages/class-pages-edit-redirects.php:54 -msgid "Break advertising redirects" -msgstr "" - -#: admin/pages/class-pages-notices.php:51 -msgid "Hidden notices" -msgstr "" - -#: admin/pages/class-pages-notices.php:52 -msgid "Manage hidden notices" -msgstr "" - -#: admin/pages/class-pages-settings.php:73 -msgid "General settings" -msgstr "" - -#: admin/pages/class-pages-settings.php:85 -msgid "Settings" -msgstr "" - -#: includes/classes/class-configurate-notices.php:81 -#, php-format -msgid "Notifications %s" -msgstr "" - -#: includes/classes/class-configurate-notices.php:92 -msgid "Hidden for you" -msgstr "" - -#: includes/classes/class-configurate-notices.php:289 -msgid "Hide for me" -msgstr "" - -#: includes/classes/class-configurate-notices.php:293 -msgid "Hide for all" -msgstr "" - -#. Name of the plugin -msgid "Disable Admin Notices Individually" -msgstr "" - -#. Description of the plugin -msgid "" -"Disable admin notices plugin gives you the option to hide updates warnings " -"and inline notices in the admin panel." -msgstr "" - -#. URI of the plugin -#. Author URI of the plugin -msgid "https://webcraftic.com" -msgstr "" - -#. Author of the plugin -msgid "Webcraftic " -msgstr "" diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/boot.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/boot.php deleted file mode 100644 index bb83f439..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/boot.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @author Alexander Kovalev , Github: https://github.com/alexkovalevv - * @since 1.0.0 - * - * @package factory-ad-inserter - * @copyright (c) 2019, Webcraftic Ltd - * - * @version 1.3.9 - */ - -// Exit if accessed directly -if ( ! defined( 'ABSPATH' ) ) { - exit; -} - -if ( defined( 'FACTORY_ADVERTS_159_LOADED' ) || ( defined( 'FACTORY_ADVERTS_BLOCK' ) && FACTORY_ADVERTS_BLOCK ) ) { - return; -} - -# Устанавливаем константу, что модуль уже загружен -define( 'FACTORY_ADVERTS_159_LOADED', true ); - -# Устанавливаем версию модуля -define( 'FACTORY_ADVERTS_159_VERSION', '1.5.9' ); - -add_action( 'init', function () { - # Регистрируем тектовый домен, для интернализации интерфейса модуля - load_plugin_textdomain( 'wbcr_factory_adverts_159', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' ); -} ); - -# Устанавливаем директорию модуля -define( 'FACTORY_ADVERTS_159_DIR', dirname( __FILE__ ) ); - -# Устанавливаем url модуля -define( 'FACTORY_ADVERTS_159_URL', plugins_url( '', __FILE__ ) ); - -require_once( FACTORY_ADVERTS_159_DIR . '/includes/class-rest-request.php' ); -require_once( FACTORY_ADVERTS_159_DIR . '/includes/class-base.php' ); - -/** - * @param Wbcr_Factory480_Plugin $plugin - */ -add_action( 'wbcr_factory_adverts_159_plugin_created', function ( $plugin ) { - $plugin->set_adverts_manager( "WBCR\Factory_Adverts_159\Base" ); -} ); diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-base.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-base.php deleted file mode 100644 index f96aa451..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-base.php +++ /dev/null @@ -1,319 +0,0 @@ - - * @author Alexander Kovalev , Github: https://github.com/alexkovalevv - * - * @since 1.0.0 Added - * @package factory-adverts - * @copyright (c) 2019 Webcraftic Ltd - */ -class Base { - - /** - * Экзепляр плагина с которым взаимодействует этот модуль - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var \Wbcr_Factory480_Plugin - */ - private $plugin; - - /* - * Contain array data with the plugin information and the module settings. - * Mainly used to get the name of the plugin and how to get the adverts blocks. - * - * @since 1.0.0 Added - * - * @var array Example: array( - * 'dashboard_widget' => true, - * 'right_sidebar' => true, - * 'notice' => true, - * ... - * ) - * - */ - private $settings = []; - - /** - * Экземпляр класса для работы API CreativeMotion - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var \WBCR\Factory_Adverts_159\Creative_Motion_API - */ - private $api; - - /** - * Сохраняем уже полученные данные, для объектного кеширования - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var array - */ - private $placements = []; - - /** - * @author Alexander Kovalev - * @since 1.0.1 - * @var array - */ - private $errors = []; - - /** - * Wbcr_Factory_Adinserter constructor. - * - * - Store plugin information and settings. - * - Add filter and actions. - * - Include dashboard widget. - * - * @since 1.0.0 Added - * - * @param \Wbcr_Factory480_Plugin $plugin - */ - public function __construct( \Wbcr_Factory480_Plugin $plugin, $settings ) { - $this->plugin = $plugin; - - $this->settings = wp_parse_args( $settings, [ - 'dashboard_widget' => false, // show dashboard widget (default: false) - 'right_sidebar' => false, // show adverts sidebar (default: false) - 'notice' => false, // show notice message (default: false), - 'business_suggetion' => false, - 'support' => false - ] ); - - $this->api = new Creative_Motion_API( $this->plugin ); - - add_filter( 'wbcr/factory/pages/impressive/widgets', [ $this, 'register_plugin_widgets' ], 10, 3 ); - add_action( 'wbcr/factory/admin_notices', [ $this, 'register_plugin_notice' ], 10, 2 ); - add_action( 'current_screen', [ $this, 'register_dashboard_widget' ], 10, 2 ); - } - - /** - * Directly get advert content for selected position. - * - * @since 1.0.1 Rename method. Content should now be printed. - * @since 1.0.0 Added - * - * @param string $position Custom position name - * - * @return void - */ - public function render_placement( $position = 'right_sidebar' ) { - $content = ''; - - if ( $position ) { - $content = $this->get_content( $position ); - } - - echo $content; - } - - /** - * Register widgets. - * - * Depending on the settings, register new widgets. - * - * @since 1.0.0 Added - * - * @param array $widgets Already existing registered widgets - * @param string $position Position for the widget - * @param string $plugin Plugin object for which the hook is run - * - * @return array array( - * 'adverts_widget' => '

      ', - * 'business_suggetion' => '

      ', - * 'support' => '

      ', - * ... - * ) - */ - public function register_plugin_widgets( $widgets, $position, $plugin ) { - if ( $plugin->getPluginName() == $this->plugin->getPluginName() && 'right' == $position ) { - - if ( $this->settings['right_sidebar'] ) { - $content = $this->get_content( 'right_sidebar' ); - $widgets['adverts_widget'] = $content; - - if ( empty( $widgets['adverts_widget'] ) ) { - if ( defined( 'FACTORY_ADVERTS_DEBUG' ) && FACTORY_ADVERTS_DEBUG ) { - $debug_message = '
      '; - $debug_message .= $this->get_debug_message( 'right_sidebar' ); - $debug_message .= '
      '; - - $widgets['adverts_widget'] = $debug_message; - } else { - unset( $widgets['adverts_widget'] ); - } - } - } - - if ( $this->settings['business_suggetion'] ) { - $content = $this->get_content( 'business_suggetion' ); - - if ( ! empty( $content ) ) { - $widgets['business_suggetion'] = $content; - } - } - - if ( $this->settings['support'] ) { - $content = $this->get_content( 'support' ); - - if ( ! empty( $content ) ) { - $widgets['support'] = $content; - } - } - } - - return $widgets; - } - - /** - * Регистрирует уведомление для текущего плагина - * - * Мы добавляем уведомления в массив всех уведомлений плагина с ключем 'adverts_notice', - * то есть если другие плагины, тоже добавят свои рекламные уведомления, они просто - * будут перезаписывать друг друга, в итоге будет отображено только одно рекламное - * уведомеление. Это нужно для того, чтобы ограничить пользователя от спама. - * - * @author Alexander Kovalev - * - * @since 1.0.1 Переделан полностью под интферфейс фреймворка. Используем встроенную систему уведомлений. - * @since 1.0.0 Added - * - * @param array $notices Массив со списком всех уведомлений, которые будут напечатыны в админ панели - * @param string $plugin_name Имя плагина, передано для того, чтобы выводить уведомления условно, только для конкретного плагина - */ - public function register_plugin_notice( $notices, $plugin_name ) { - if ( $plugin_name !== $this->plugin->getPluginName() ) { - return $notices; - } - - if ( $this->settings['notice'] ) { - $notice_content = $this->get_content( 'notice' ); - - if ( empty( $notice_content ) ) { - # Информация для отладки - if ( defined( 'FACTORY_ADVERTS_DEBUG' ) && FACTORY_ADVERTS_DEBUG ) { - $debug_message = $this->get_debug_message( 'notice' ); - - $notices['adverts_notice'] = [ - 'id' => 'adverts_debug', - 'type' => 'error', - 'dismissible' => false, - 'dismiss_expires' => 0, - 'text' => '

      ' . $this->plugin->getPluginTitle() . ':
      ' . $debug_message . '

      ' - ]; - } - - return $notices; - } - - $hash = md5( $notice_content ); - - $notices['adverts_notice'] = [ - 'id' => 'adverts_' . $hash, - 'type' => 'success', - 'dismissible' => true, - 'dismiss_expires' => 0, - 'text' => '

      ' . $this->plugin->getPluginTitle() . ':
      ' . $notice_content . '

      ' - ]; - } - - return $notices; - } - - /** - * Include dashboard widget - * - * Include functionality the output of the widget on the dashboard. - * Only one dashboard widget must be shown for some plugins with this setting (dashboard_widget). - * - * @since 1.0.0 Added - */ - public function register_dashboard_widget() { - if ( $this->settings['dashboard_widget'] && current_user_can( 'manage_options' ) ) { - $current_screen = get_current_screen(); - - if ( ! in_array( $current_screen->id, [ 'dashboard', 'dashboard-network' ] ) ) { - return; - } - - $content = $this->get_content( 'dashboard_widget' ); - - if ( empty( $content ) && defined( 'FACTORY_ADVERTS_DEBUG' ) && FACTORY_ADVERTS_DEBUG ) { - $content = $this->get_debug_message( 'dashboard_widget' ); - } - - require_once FACTORY_ADVERTS_159_DIR . '/includes/class-dashboard-widget.php'; - new Dashboard_Widget( $this->plugin, $content ); - } - } - - /** - * Позволяет получить сообщение об ошибках - * - * Метод проверяет последние ошибки, которые могли произойти в результате api запроса. - * Если ошибки есть, он выводит предупреждение и список последних ошибок. Если ошибок нет, - * метод вернет просто предупреждение, что реклама не настроена. - * - * @author Alexander Kovalev - * @since 1.0.1 - * - * @param string $position Position for the widget - * - * @return string Возвращает сообщение с последниеми ошибками для отладки - */ - private function get_debug_message( $position ) { - $debug_massage = 'Plugin ads not configured or server unavailable. See full error report below.
      '; - - if ( isset( $this->errors[ $position ] ) && ! empty( $this->errors ) ) { - $debug_massage .= 'Last errors:
      '; - foreach ( $this->errors[ $position ] as $error_code => $error_message ) { - $debug_massage .= 'Code: ' . $error_code . ' Error: ' . $error_message . '
      '; - } - } - - return $debug_massage; - } - - /** - * Get advert content for selected position. - * - * @since 1.0.1 Полностью переписан - * @since 1.0.0 Added - * - * @param string $position The position for advert - * - * @return string - */ - private function get_content( $position ) { - if ( isset( $this->placements[ $position ] ) ) { - return $this->placements[ $position ]; - } - - $content = $this->api->get_content( $position ); - - if ( is_wp_error( $content ) ) { - $this->errors[ $position ][ $content->get_error_code() ] = $content->get_error_message(); - - return null; - } - - $this->placements[ $position ] = $content; - - return $content; - } -} diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-dashboard-widget.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-dashboard-widget.php deleted file mode 100644 index 6d2e558e..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-dashboard-widget.php +++ /dev/null @@ -1,125 +0,0 @@ - - * @author Alexander Kovalev , Github: https://github.com/alexkovalevv - * - * @since 1.0.0 Added - * @package factory-adverts - * @copyright (c) 2019 Webcraftic Ltd - */ -class Dashboard_Widget { - - /** - * Контент, который должен быть напечатан внутри дашбоард виджета - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var string - */ - private $content; - - /** - * Экзепляр плагина с которым взаимодействует этот модуль - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var \Wbcr_Factory480_Plugin - */ - private $plugin; - - /** - * Dashboard_Widget constructor. - * - * Call parent constructor. Registration hooks. - * - * @since 1.0.0 Added - * - * @param \Wbcr_Factory480_Plugin $plugin - * @param string $content - */ - public function __construct( \Wbcr_Factory480_Plugin $plugin, $content ) { - - $this->plugin = $plugin; - $this->content = $content; - - if ( ! empty( $this->content ) ) { - if ( $this->plugin->isNetworkActive() && $this->plugin->isNetworkAdmin() ) { - add_action( 'wp_network_dashboard_setup', [ $this, 'add_dashboard_widgets' ], 999 ); - - return; - } - - add_action( 'wp_dashboard_setup', [ $this, 'add_dashboard_widgets' ], 999 ); - } - } - - /** - * Add the News widget to the dashboard. - * - * @since 1.0.0 Added - */ - public function add_dashboard_widgets() { - $widget_id = 'wbcr-factory-adverts-widget'; - - wp_add_dashboard_widget( $widget_id, $this->plugin->getPluginTitle() . ' News', [ - $this, - 'print_widget_content' - ] ); - - $this->sort_dashboard_widgets( $widget_id ); - } - - /** - * Create the function to output the contents of the Dashboard Widget. - * - * @since 1.0.0 Added - */ - public function print_widget_content() { - ?> -
      -
      - content; ?> -
      -
      - - * @author Alexander Vitkalov - * - * @since 1.0.2 Добавлена поддержка мультисайтов - * @since 1.0.0 Добавлен - * - * @param string $widget_id ID нашего виджета - */ - private function sort_dashboard_widgets( $widget_id ) { - global $wp_meta_boxes; - - $location = $this->plugin->isNetworkAdmin() ? 'dashboard-network' : 'dashboard'; - - $normal_core = $wp_meta_boxes[ $location ]['normal']['core']; - $widget_backup = [ $widget_id => $normal_core[ $widget_id ] ]; - unset( $normal_core[ $widget_id ] ); - $sorted_core = array_merge( $widget_backup, $normal_core ); - - $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_core; - } -} diff --git a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-rest-request.php b/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-rest-request.php deleted file mode 100644 index 91ac62f6..00000000 --- a/wp-content/plugins/!clearfy/components/disable-admin-notices/libs/factory/adverts/includes/class-rest-request.php +++ /dev/null @@ -1,217 +0,0 @@ -, Github: https://github.com/alexkovalevv - * @author Alexander Vitkalov - * - * @since 1.0.1 Изменил имя класса и доработал его. - * @since 1.0.0 Added - * - * @package factory-adverts - * @copyright (c) 2019 Webcraftic Ltd - */ -class Creative_Motion_API { - - /** - * Rest request url. - * - * Define rest request url for rest request to remote server. - * - * @since 1.2.1 - */ - const SERVER_URL = 'https://api.cm-wp.com'; - - /** - * Rest route path. - * - * Define rest route path for rest request. - * - * @since 1.0.0 - */ - const REST_ROUTE = '/adverds/v1/advt'; - - /** - * Интервал между запросами по умолчанию - * - * Значение в часах. - * - * @since 1.0.1 - */ - const DEFAULT_REQUESTS_INTERVAL = 24; - - /** - * Интервал между запросами, если сервер недоступен - * - * Значение в часах. - * - * @since 1.0.1 - */ - const SERVER_UNAVAILABLE_INTERVAL = 4; - - - /** - * Экзепляр плагина с которым взаимодействует этот модуль - * - * @author Alexander Kovalev - * @since 1.0.1 - * @var \Wbcr_Factory480_Plugin - */ - private $plugin; - - - /** - * Request constructor. - * - * Variable initialization. - * - * @param \Wbcr_Factory480_Plugin $plugin_name - * @since 1.0.0 Added - * - */ - public function __construct(\Wbcr_Factory480_Plugin $plugin) - { - $this->plugin = $plugin; - } - - /** - * Get adverts content. - * - * @param $position - * - * @return string|\WP_Error - * @author Alexander Kovalev - * @since 1.0.1 - * - */ - public function get_content($position) - { - $data = $this->get_cache($position); - - if( is_wp_error($data) ) { - return $data; - } - - return strip_tags($data['content'], ',,,,,