First draft

This commit is contained in:
2025-12-02 10:06:37 +00:00
parent 6d76533d1f
commit 801c24885b
11 changed files with 498 additions and 165 deletions

View File

@@ -15,26 +15,51 @@
* Feel free to remove this file if you don't intend to use the 1984/HostingSupport1984 * Feel free to remove this file if you don't intend to use the 1984/HostingSupport1984
* user interface additions. * user interface additions.
*/ */
class HostingSupport1984UI { class HostingSupport1984UI
{
const VIEWS_DIR = './views/'; const VIEWS_DIR = './views/';
/** /**
* Construct a new HostingSupport1984UI object * Build a new HostingSupport1984UI object
*/ */
public function __construct() { public function __construct()
{
// Add the 1984 Support Information dashboard widget. // Add the 1984 Support Information dashboard widget.
add_action( add_action(
'wp_dashboard_setup', 'wp_dashboard_setup',
array( $this, 'add_dashboard_widget' ) array($this,
'add_dashboard_widget')
); );
// Enqueue the admin JS and CSS. // Enqueue the admin JS and CSS.
add_action( add_action(
'admin_enqueue_scripts', 'admin_enqueue_scripts',
array( $this, 'enqueue_admin_scripts' ) array($this,
'enqueue_admin_scripts')
); );
} }
/**
* Add the 1984 Hosting dashboard widget.
*/
public function add_dashboard_widget()
{
wp_add_dashboard_widget(
'1984_hosting_support_widget',
__('1984 Hosting Support', 'hostingsupport1984'),
array($this,
'render_dashboard_widget')
);
}
/**
* Render the 1984 Hosting dashboard widget.
*/
public function render_dashboard_widget()
{
$this->render_view('support-dashboard-widget.php');
}
/** /**
* Render a view * Render a view
* *
@@ -43,12 +68,13 @@ class HostingSupport1984UI {
* *
* @return Boolean True if the user has access to the view. False if not. * @return Boolean True if the user has access to the view. False if not.
*/ */
public function render_view( string $view_file, bool $admin_only = true ) { public function render_view(string $view_file, bool $admin_only = true): bool
{
if ( if (
true === $admin_only && current_user_can( 'manage_options' ) || true === $admin_only && current_user_can('manage_options') ||
false === $admin_only false === $admin_only
) { ) {
require self::view_path( $view_file ); require self::view_path($view_file);
return true; return true;
} }
return false; return false;
@@ -57,44 +83,20 @@ class HostingSupport1984UI {
/** /**
* Get full file path for a view * Get full file path for a view
* *
* @param String $view_file The view file name. * @param String $view_file The view file name.
*
* @return String The path. * @return String The path.
*/ */
private function view_path( $view_file ) { private function view_path(string $view_file)
return plugin_dir_path( __FILE__ ) . self::VIEWS_DIR . $view_file; {
} return plugin_dir_path(__FILE__) . self::VIEWS_DIR . $view_file;
/**
* Check if the user can see the 1984 admin panel
*
* @return [type] [description]
*/
private function current_user_can_view_admin_panel() {
return ( true === current_user_can( 'manage_options' ) );
}
/**
* Add the 1984 Hosting dashboard widget.
*/
public function add_dashboard_widget() {
wp_add_dashboard_widget(
'1984_hosting_support_widget',
__( '1984 Hosting Support', 'hostingsupport1984' ),
array( $this, 'render_dashboard_widget' )
);
}
/**
* Render the 1984 Hosting dashboard widget.
*/
public function render_dashboard_widget() {
$this->render_view( 'support-dashboard-widget.php' );
} }
/** /**
* Enqueue the 1984 wp-admin scripts * Enqueue the 1984 wp-admin scripts
*/ */
public function enqueue_admin_scripts() { public function enqueue_admin_scripts()
{
wp_enqueue_script( wp_enqueue_script(
'1984-hosting-support-admin', '1984-hosting-support-admin',
plugins_url( plugins_url(
@@ -116,6 +118,16 @@ class HostingSupport1984UI {
false false
); );
} }
/**
* Check if the user can see the 1984 admin panel
*
* @return bool [type] [description]
*/
private function current_user_can_view_admin_panel(): bool
{
return (true === current_user_can('manage_options'));
}
} }
$hosting_support_1984_ui = new HostingSupport1984UI(); $hosting_support_1984_ui = new HostingSupport1984UI();

View File

@@ -19,38 +19,77 @@
* There are other classes that may depend on this file, so only remove it if * There are other classes that may depend on this file, so only remove it if
* you do not intend to use the plugin. * you do not intend to use the plugin.
*/ */
class HostingSupport1984 { class HostingSupport1984
{
const HOSTING_SUPPORT_VERSION = '0.4.0'; const HOSTING_SUPPORT_VERSION = '0.4.0';
/** /**
* Construct a new HostingSupport1984 object * Construct a new HostingSupport1984 object
*/ */
public function __construct() { public function __construct()
{
// Loading the text domain for a mu-plugin is tricky. // Loading the text domain for a mu-plugin is tricky.
// We need to use admin_init instead of plugins_loaded as we are only // We need to use admin_init instead of plugins_loaded as we are only
// using the plugin in the admin interface. // using the plugin in the admin interface.
add_action( add_action(
'admin_init', 'admin_init',
array( $this, 'load_textdomain' ) array($this,
'load_textdomain')
); );
// Register the activation hook. // Register the activation hook.
register_activation_hook( register_activation_hook(
__FILE__, __FILE__,
array( $this, 'activation_hook' ) array($this,
'activation_hook')
); );
// Run on activation of any plugin. // Run on activation of any plugin.
add_action( add_action(
'activated_plugin', 'activated_plugin',
array( $this, 'plugin_activation_hook' ) array($this,
'plugin_activation_hook')
); );
// Run on activation of theme. // Run on activation of theme.
add_action( add_action(
'switch_theme', 'switch_theme',
array( $this, 'theme_switch_hook' ) array($this,
'theme_switch_hook')
); );
// Add a clear warning on the Patchstack plugin row to discourage removal.
add_filter(
'plugin_row_meta',
array($this,
'add_patchstack_warning_row_meta'),
10,
2
);
// Prevent deactivation/deletion of this plugin and Patchstack via UI links.
add_filter(
'plugin_action_links',
array($this,
'filter_plugin_action_links'),
10,
4
);
add_filter(
'network_admin_plugin_action_links',
array($this,
'filter_plugin_action_links'),
10,
4
);
// Guard against direct requests (single and bulk) on Plugins screens and updater endpoints.
add_action('load-plugins.php', array($this,
'protect_plugins_admin_actions'));
add_action('load-plugins-network.php', array($this,
'protect_plugins_admin_actions'));
add_action('load-update.php', array($this,
'protect_plugins_admin_actions'));
} }
/** /**
@@ -58,7 +97,8 @@ class HostingSupport1984 {
* *
* @return Boolean * @return Boolean
*/ */
public function load_textdomain() { public function load_textdomain()
{
return load_plugin_textdomain( return load_plugin_textdomain(
'hostingsupport1984', 'hostingsupport1984',
false, false,
@@ -66,38 +106,40 @@ class HostingSupport1984 {
); );
} }
/**
* Check if Patchstack is enabled.
*
* @return Boolean
*/
public function is_patchstack_active() {
return is_plugin_active( 'patchstack/patchstack.php' );
}
/** /**
* On activation of this plugin, set auto-update option for core, * On activation of this plugin, set auto-update option for core,
* plus enable auto-updates for installed plugins and themes. * plus enable auto-updates for installed plugins and themes.
* *
* This is skipped if Patchstack is active on the site. * This is skipped if Patchstack is active on the site.
*/ */
public function activation_hook() { public function activation_hook()
if ( $this->is_patchstack_active() ) { {
if ($this->is_patchstack_active()) {
// In case Patchstack is active, do not continue. // In case Patchstack is active, do not continue.
return; return;
} }
// Auto-update WordPress core. // Auto-update WordPress core.
update_site_option( 'auto_update_core_major', 'enabled' ); update_site_option('auto_update_core_major', 'enabled');
// Auto-update plugins. // Auto-update plugins.
$all_plugins = apply_filters( 'all_plugins', get_plugins() ); $all_plugins = apply_filters('all_plugins', get_plugins());
update_site_option( 'auto_update_plugins', array_keys( $all_plugins ) ); update_site_option('auto_update_plugins', array_keys($all_plugins));
// Auto-update themes. // Auto-update themes.
$all_themes = wp_get_themes(); $all_themes = wp_get_themes();
update_site_option( 'auto_update_themes', array_keys( $all_themes ) ); update_site_option('auto_update_themes', array_keys($all_themes));
}
/**
* Check if Patchstack is enabled.
*
* @return Boolean
*/
public function is_patchstack_active()
{
return is_plugin_active('patchstack/patchstack.php');
} }
/** /**
@@ -105,16 +147,17 @@ class HostingSupport1984 {
* *
* This is skipped if Patchstack is active on the site. * This is skipped if Patchstack is active on the site.
*/ */
public function plugin_activation_hook( $plugin ) { public function plugin_activation_hook($plugin)
if ( $this->is_patchstack_active() ) { {
if ($this->is_patchstack_active()) {
// In case Patchstack is active, do not continue. // In case Patchstack is active, do not continue.
return; return;
} }
$auto_updated_plugins = (array) get_site_option( 'auto_update_plugins', array() ); $auto_updated_plugins = (array)get_site_option('auto_update_plugins', array());
$auto_updated_plugins[] = $plugin; $auto_updated_plugins[] = $plugin;
update_site_option( 'auto_update_plugins', array_unique( $auto_updated_plugins ) ); update_site_option('auto_update_plugins', array_unique($auto_updated_plugins));
} }
/** /**
@@ -122,19 +165,156 @@ class HostingSupport1984 {
* *
* This is skipped if Patchstack is active on the site. * This is skipped if Patchstack is active on the site.
*/ */
public function theme_switch_hook( $theme ) { public function theme_switch_hook($theme)
if ( $this->is_patchstack_active() ) { {
if ($this->is_patchstack_active()) {
// In case Patchstack is active, do not continue. // In case Patchstack is active, do not continue.
return; return;
} }
$all_themes = wp_get_themes(); $all_themes = wp_get_themes();
update_site_option( 'auto_update_themes', array_keys( $all_themes ) ); update_site_option('auto_update_themes', array_keys($all_themes));
}
/**
* Append a prominent warning to the Patchstack plugin row in the Plugins screen.
*
* @param array $links Existing row meta links.
* @param string $file Plugin file path about plugins directory.
*
* @return array Modified row meta-links.
*/
public function add_patchstack_warning_row_meta(array $links, string $file): array
{
// Only show the warning on the Patchstack row AND only if Patchstack is active.
if ('patchstack/patchstack.php' !== $file || !$this->is_patchstack_active()) {
return $links;
}
$warning_text = '1984: Please do not deactivate or delete this plugin - part of your WordPress Service Pack.';
$logo_1984_url = plugins_url('icons/1984-hosting-logo.webp', __FILE__);
$logo_patchstack = plugins_url('icons/patchstack-logo.svg', __FILE__);
$warning_icon =
'<span class="dashicons dashicons-warning" aria-hidden="true" style="color:#b32d2e;vertical-align:text-bottom;margin-right:6px;"></span>';
$links[] =
'<span class="description" style="color:#b32d2e;font-weight:700;display:inline-flex;align-items:center;line-height:1;">' . $warning_icon . esc_html($warning_text) . '</span>' .
'<span class="description" style="margin-left:6px;display:inline-flex;align-items:center;gap:4px;">'
.
'<a href="https://1984.hosting" target="_blank" rel="noopener noreferrer" title="1984 Hosting" aria-label="1984 Hosting (opens in a new tab)">'
.
'<img src="' . esc_url($logo_1984_url) . '" alt="1984 Hosting" style="height:16px;width:auto;display:inline-block;" />'
.
'</a>'
.
'<a href="https://patchstack.com" target="_blank" rel="noopener noreferrer" title="Patchstack" aria-label="Patchstack (opens in a new tab)">'
.
'<img src="' . esc_url($logo_patchstack) . '" alt="Patchstack" style="height:16px;width:auto;display:inline-block;" />'
.
'</a>'
.
'</span>';
return $links;
}
/**
* Remove Deactivate/Delete action links for protected plugins (single and network admin).
*
* @param array $actions
* @param string $plugin_file
* @param array $plugin_data
* @param string $context
*
* @return array
*/
public function filter_plugin_action_links(array $actions, string $plugin_file, array $plugin_data,
string $context): array
{
if ($this->is_protected_plugin($plugin_file)) {
unset($actions['deactivate']);
unset($actions['delete']);
}
return $actions;
}
/**
* Determine if a plugin file is in the protected list.
*
* @param string $plugin_file
*
* @return bool
*/
private function is_protected_plugin(string $plugin_file): bool
{
return in_array($plugin_file, $this->get_protected_plugins(), true);
}
/**
* Return plugin basenames that must be protected from deactivation/deletion.
*
* @return string[]
*/
private function get_protected_plugins(): array
{
$own = plugin_basename(__FILE__);
return array(
$own,
'patchstack/patchstack.php',
);
}
/**
* Intercept admin actions attempting to deactivate or delete protected plugins and block them.
*/
public function protect_plugins_admin_actions()
{
// Collect requested action(s).
$action = isset($_REQUEST['action']) ? sanitize_key((string)$_REQUEST['action']) : '';
$action2 = isset($_REQUEST['action2']) ? sanitize_key((string)$_REQUEST['action2']) : '';
$targets = array();
if (!empty($_REQUEST['plugin'])) {
$targets[] = sanitize_text_field((string)$_REQUEST['plugin']);
}
if (!empty($_REQUEST['checked']) && is_array($_REQUEST['checked'])) {
foreach ($_REQUEST['checked'] as $pf) {
$targets[] = sanitize_text_field((string)$pf);
}
}
if (empty($targets)) {
return;
}
$blocked_actions = array(
'deactivate',
'deactivate-selected',
'delete',
'delete-selected',
'delete-plugin',
);
if (!in_array($action, $blocked_actions, true) && !in_array($action2, $blocked_actions, true)) {
return;
}
$protected = $this->get_protected_plugins();
$intersect = array_intersect($targets, $protected);
if (!empty($intersect)) {
wp_die(
__('For security, this action is blocked: 1984 Hosting Support and Patchstack cannot be deactivated or deleted while this policy is active.', 'hostingsupport1984'),
403
);
}
} }
} }
$hosting_support_1984 = new HostingSupport1984(); $hosting_support_1984 = new HostingSupport1984();
define( 'A1984_HOSTING_SUPPORT_BASE_FILE', __FILE__ ); const A1984_HOSTING_SUPPORT_BASE_FILE = __FILE__;
require_once __DIR__ . '/1984-hosting-support-ui.php'; require_once __DIR__ . '/1984-hosting-support-ui.php';

View File

@@ -1,6 +1,8 @@
# 1984 Hosting Support Plugin # 1984 Hosting Support Plugin
This is a plugin provided by [1984 Hosting Company](https://1984.hosting/) to improve users' support experience while using WordPress. It is primarily intended for customers of 1984 Hosting Company, though anyone can use it. If you are a 1984 customer, feel free to disable or remove the plugin on your site if you do not find it useful. This is a plugin provided by [1984 Hosting Company](https://1984.hosting/) to improve users' support experience while
using WordPress. It is primarily intended for customers of 1984 Hosting Company, though anyone can use it. If you are a
1984 customer, feel free to disable or remove the plugin on your site if you do not find it useful.
The main function is provide a widget to users, as shown below: The main function is provide a widget to users, as shown below:

View File

@@ -1 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><defs><style>.cls-1{fill:#232540;}</style></defs><path class="cls-1" d="M130.95,121.55l109.34-67.11v-3.42c0-6.42-5.2-11.63-11.63-11.63H27.34c-6.42,0-11.63,5.2-11.63,11.63v3.41l109.51,67.12c1.76,1.08,3.97,1.08,5.72,0Z"/><path class="cls-1" d="M125.23,151.04L15.71,83.92v121.06c0,6.42,5.2,11.63,11.63,11.63h201.32c6.42,0,11.63-5.2,11.63-11.63v-121.04l-109.33,67.1c-1.76,1.08-3.97,1.08-5.72,0Z"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<style>.cls-1{fill:#232540;}</style>
</defs>
<path class="cls-1"
d="M130.95,121.55l109.34-67.11v-3.42c0-6.42-5.2-11.63-11.63-11.63H27.34c-6.42,0-11.63,5.2-11.63,11.63v3.41l109.51,67.12c1.76,1.08,3.97,1.08,5.72,0Z"/>
<path class="cls-1"
d="M125.23,151.04L15.71,83.92v121.06c0,6.42,5.2,11.63,11.63,11.63h201.32c6.42,0,11.63-5.2,11.63-11.63v-121.04l-109.33,67.1c-1.76,1.08-3.97,1.08-5.72,0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 563 B

View File

@@ -1 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><defs><style>.cls-1{fill:#232540;}</style></defs><path class="cls-1" d="M128,24.76c-57.02,0-103.24,46.22-103.24,103.24s46.22,103.24,103.24,103.24,103.24-46.22,103.24-103.24S185.02,24.76,128,24.76ZM139.31,200.31h-22.62c-1.66,0-3-1.34-3-3v-89.15c0-1.66,1.34-3,3-3h22.62c1.66,0,3,1.34,3,3v89.15c0,1.66-1.34,3-3,3ZM139.28,84.38h-22.57c-1.67,0-3.03-1.35-3.03-3.03v-20.95c0-1.67,1.35-3.03,3.03-3.03h22.57c1.67,0,3.03,1.35,3.03,3.03v20.95c0,1.67-1.35,3.03-3.03,3.03Z"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<style>.cls-1{fill:#232540;}</style>
</defs>
<path class="cls-1"
d="M128,24.76c-57.02,0-103.24,46.22-103.24,103.24s46.22,103.24,103.24,103.24,103.24-46.22,103.24-103.24S185.02,24.76,128,24.76ZM139.31,200.31h-22.62c-1.66,0-3-1.34-3-3v-89.15c0-1.66,1.34-3,3-3h22.62c1.66,0,3,1.34,3,3v89.15c0,1.66-1.34,3-3,3ZM139.28,84.38h-22.57c-1.67,0-3.03-1.35-3.03-3.03v-20.95c0-1.67,1.35-3.03,3.03-3.03h22.57c1.67,0,3.03,1.35,3.03,3.03v20.95c0,1.67-1.35,3.03-3.03,3.03Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 617 B

115
icons/patchstack-logo.svg Normal file
View File

@@ -0,0 +1,115 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="140 0 720 108" width="720" height="108"
style="width: 100%; height: 100%; transform: translate3d(0px, 0px, 0px); content-visibility: visible;"
preserveAspectRatio="xMidYMid meet">
<defs>
<clipPath id="__lottie_element_2">
<rect width="1000" height="108" x="0" y="0"></rect>
</clipPath>
</defs>
<g clip-path="url(#__lottie_element_2)">
<g style="display: block;"
transform="matrix(0.3399930000305176,0,0,0.34498801827430725,183.22999572753906,55.01251983642578)"
opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,-44.5,94.25)">
<path fill="rgb(110,190,0)" fill-opacity="1"
d=" M44.5,-31.75 C44.5,-31.75 44.5,31.75 44.5,31.75 C44.5,31.75 -44.5,31.75 -44.5,31.75 C-44.5,31.75 -44.5,-31.75 -44.5,-31.75 C-44.5,-31.75 44.5,-31.75 44.5,-31.75z"></path>
<path stroke-linecap="butt" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4"
stroke="rgb(0,0,239)" stroke-opacity="1" stroke-width="0"
d=" M44.5,-31.75 C44.5,-31.75 44.5,31.75 44.5,31.75 C44.5,31.75 -44.5,31.75 -44.5,31.75 C-44.5,31.75 -44.5,-31.75 -44.5,-31.75 C-44.5,-31.75 44.5,-31.75 44.5,-31.75z"></path>
</g>
</g>
<g style="display: block;"
transform="matrix(0.32833799719810486,0,0,0.3436559736728668,153.25999450683594,55.180362701416016)"
opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,-44.5,94.25)">
<path fill="rgb(175,230,20)" fill-opacity="1"
d=" M44.5,-31.75 C44.5,-31.75 44.5,31.75 44.5,31.75 C44.5,31.75 -44.5,31.75 -44.5,31.75 C-44.5,31.75 -44.5,-31.75 -44.5,-31.75 C-44.5,-31.75 44.5,-31.75 44.5,-31.75z"></path>
<path stroke-linecap="butt" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4"
stroke="rgb(0,0,239)" stroke-opacity="1" stroke-width="0"
d=" M44.5,-31.75 C44.5,-31.75 44.5,31.75 44.5,31.75 C44.5,31.75 -44.5,31.75 -44.5,31.75 C-44.5,31.75 -44.5,-31.75 -44.5,-31.75 C-44.5,-31.75 44.5,-31.75 44.5,-31.75z"></path>
</g>
</g>
<g style="display: block;"
transform="matrix(0.3399930000305176,0,0,0.3349980115890503,182.71420288085938,56.104427337646484)"
opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,89,-34)">
<path fill="rgb(175,230,20)" fill-opacity="1"
d=" M88,-96 C88,-96 88,96 88,96 C88,96 -88,96 -88,96 C-88,96 -88,-96 -88,-96 C-88,-96 88,-96 88,-96z"></path>
<path stroke-linecap="butt" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4"
stroke="rgb(0,0,239)" stroke-opacity="1" stroke-width="0"
d=" M88,-96 C88,-96 88,96 88,96 C88,96 -88,96 -88,96 C-88,96 -88,-96 -88,-96 C-88,-96 88,-96 88,-96z"></path>
</g>
</g>
<g style="display: block;"
transform="matrix(0.3316679894924164,0,0,0.3330000042915344,182.99288940429688,55.5369987487793)"
opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,-89,-65)">
<path fill="rgb(110,190,0)" fill-opacity="1"
d=" M89,-64 C89,-64 89,64 89,64 C89,64 -89,64 -89,64 C-89,64 -89,-64 -89,-64 C-89,-64 89,-64 89,-64z"></path>
<path stroke-linecap="butt" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4"
stroke="rgb(0,0,239)" stroke-opacity="1" stroke-width="0"
d=" M89,-64 C89,-64 89,64 89,64 C89,64 -89,64 -89,64 C-89,64 -89,-64 -89,-64 C-89,-64 89,-64 89,-64z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,313,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M2.061000108718872,-10.508000373840332 C-8.185999870300293,-10.508000373840332 -13.237000465393066,-14.91100025177002 -13.237000465393066,-24.417999267578125 C-13.237000465393066,-34.025001525878906 -8.185999870300293,-38.52799987792969 2.061000108718872,-38.52799987792969 C12.088000297546387,-38.52799987792969 17.715999603271484,-34.025001525878906 17.715999603271484,-24.417999267578125 C17.715999603271484,-14.91100025177002 12.088000297546387,-10.508000373840332 2.061000108718872,-10.508000373840332z M7.019999980926514,-50.0369987487793 C-2.3459999561309814,-50.0369987487793 -9.472000122070312,-46.13399887084961 -12.998000144958496,-38.22800064086914 C-12.998000144958496,-38.22800064086914 -12.998000144958496,-49.0359992980957 -12.998000144958496,-49.0359992980957 C-12.998000144958496,-49.0359992980957 -25.867000579833984,-49.0359992980957 -25.867000579833984,-49.0359992980957 C-25.867000579833984,-49.0359992980957 -26.367000579833984,-16 -26.367000579833984,-16 C-26.367000579833984,-16 -25.867000579833984,17.011999130249023 -25.867000579833984,17.011999130249023 C-25.867000579833984,17.011999130249023 -12.935999870300293,17.011999130249023 -12.935999870300293,17.011999130249023 C-12.935999870300293,17.011999130249023 -12.935999870300293,-10.508000373840332 -12.935999870300293,-10.508000373840332 C-9.40999984741211,-2.802000045776367 -2.677000045776367,1.0010000467300415 6.248000144958496,1.0010000467300415 C13.85099983215332,1.0010000467300415 19.91200065612793,-1.3009999990463257 24.319000244140625,-6.004000186920166 C28.615999221801758,-10.607000350952148 30.81999969482422,-16.711999893188477 30.81999969482422,-24.417999267578125 C30.81999969482422,-40.02899932861328 21.895000457763672,-50.0369987487793 7.019999980926514,-50.0369987487793z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,382.5,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M-1.5750000476837158,-10.508000373840332 C-11.381999969482422,-10.508000373840332 -17.354999542236328,-15.111000061035156 -17.354999542236328,-24.417999267578125 C-17.354999542236328,-33.82500076293945 -11.381999969482422,-38.52799987792969 -1.5750000476837158,-38.52799987792969 C8.67199993133545,-38.52799987792969 13.847999572753906,-34.025001525878906 13.847999572753906,-24.417999267578125 C13.847999572753906,-14.91100025177002 8.67199993133545,-10.508000373840332 -1.5750000476837158,-10.508000373840332z M13.470000267028809,-38.02799987792969 C9.944000244140625,-46.034000396728516 2.943000078201294,-50.0369987487793 -6.422999858856201,-50.0369987487793 C-21.408000946044922,-50.0369987487793 -30.333999633789062,-40.02899932861328 -30.333999633789062,-24.417999267578125 C-30.333999633789062,-16.711999893188477 -28.128999710083008,-10.607000350952148 -23.722000122070312,-6.004000186920166 C-19.424999237060547,-1.3009999990463257 -13.364999771118164,1.0010000467300415 -5.76200008392334,1.0010000467300415 C3.2730000019073486,1.0010000467300415 10.053999900817871,-2.9019999504089355 13.470000267028809,-10.708000183105469 C13.470000267028809,-10.708000183105469 13.470000267028809,0 13.470000267028809,0 C13.470000267028809,0 26.58799934387207,0 26.58799934387207,0 C26.58799934387207,0 26.58799934387207,-49.0359992980957 26.58799934387207,-49.0359992980957 C26.58799934387207,-49.0359992980957 13.470000267028809,-49.0359992980957 13.470000267028809,-49.0359992980957 C13.470000267028809,-49.0359992980957 13.470000267028809,-38.02799987792969 13.470000267028809,-38.02799987792969z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,439,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M19.81399917602539,-48.95199966430664 C19.81399917602539,-48.95199966430664 3.3329999446868896,-48.95199966430664 3.3329999446868896,-48.95199966430664 C3.3329999446868896,-48.95199966430664 3.3329999446868896,-63.78099822998047 3.3329999446868896,-63.78099822998047 C3.3329999446868896,-63.78099822998047 -9.53499984741211,-63.78099822998047 -9.53499984741211,-63.78099822998047 C-9.53499984741211,-63.78099822998047 -9.53499984741211,-48.95199966430664 -9.53499984741211,-48.95199966430664 C-9.53499984741211,-48.95199966430664 -20.7189998626709,-48.95199966430664 -20.7189998626709,-48.95199966430664 C-20.7189998626709,-48.95199966430664 -20.7189998626709,-37.28200149536133 -20.7189998626709,-37.28200149536133 C-20.7189998626709,-37.28200149536133 -9.53499984741211,-37.28200149536133 -9.53499984741211,-37.28200149536133 C-9.53499984741211,-37.28200149536133 -9.53499984741211,-15.243000030517578 -9.53499984741211,-15.243000030517578 C-9.53499984741211,-6.117000102996826 -3.4110000133514404,0 6.75,0 C6.75,0 18.474000930786133,0 18.474000930786133,0 C18.474000930786133,0 18.474000930786133,-11.232000350952148 18.474000930786133,-11.232000350952148 C18.474000930786133,-11.232000350952148 3.3329999446868896,-11.232000350952148 3.3329999446868896,-11.232000350952148 C3.3329999446868896,-11.232000350952148 3.3329999446868896,-37.28200149536133 3.3329999446868896,-37.28200149536133 C3.3329999446868896,-37.28200149536133 19.81399917602539,-37.28200149536133 19.81399917602539,-37.28200149536133 C19.81399917602539,-37.28200149536133 19.81399917602539,-48.95199966430664 19.81399917602539,-48.95199966430664z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,493,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M0.9729999899864197,-10.508000373840332 C-9.1899995803833,-10.508000373840332 -15.121000289916992,-14.91100025177002 -15.121000289916992,-24.417999267578125 C-15.121000289916992,-34.025001525878906 -9.1899995803833,-38.52799987792969 0.9729999899864197,-38.52799987792969 C9.194999694824219,-38.52799987792969 14.213000297546387,-35.72600173950195 15.925999641418457,-27.6200008392334 C15.925999641418457,-27.6200008392334 28.950000762939453,-30.621999740600586 28.950000762939453,-30.621999740600586 C25.40999984741211,-43.53200149536133 15.131999969482422,-50.0369987487793 0.9729999899864197,-50.0369987487793 C-7.820000171661377,-50.0369987487793 -14.89900016784668,-47.73500061035156 -20.266000747680664,-43.03200149536133 C-25.746999740600586,-38.32899856567383 -28.488000869750977,-32.124000549316406 -28.488000869750977,-24.417999267578125 C-28.488000869750977,-16.812000274658203 -25.746999740600586,-10.706999778747559 -20.266000747680664,-6.004000186920166 C-14.89900016784668,-1.3009999990463257 -7.820000171661377,1.0010000467300415 0.9729999899864197,1.0010000467300415 C14.789999961853027,1.0010000467300415 25.29599952697754,-5.203999996185303 28.950000762939453,-18.413999557495117 C28.950000762939453,-18.413999557495117 15.925999641418457,-21.416000366210938 15.925999641418457,-21.416000366210938 C14.098999977111816,-13.3100004196167 9.079999923706055,-10.508000373840332 0.9729999899864197,-10.508000373840332z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,557,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M6.936999797821045,-50.0369987487793 C-2.3310000896453857,-50.0369987487793 -8.562000274658203,-47.125 -11.71500015258789,-39.689998626708984 C-11.71500015258789,-39.689998626708984 -11.71500015258789,-70.0510025024414 -11.71500015258789,-70.0510025024414 C-11.71500015258789,-70.0510025024414 -24.770999908447266,-70.0510025024414 -24.770999908447266,-70.0510025024414 C-24.770999908447266,-70.0510025024414 -24.770999908447266,0 -24.770999908447266,0 C-24.770999908447266,0 -11.71500015258789,0 -11.71500015258789,0 C-11.71500015258789,0 -11.71500015258789,-23.41699981689453 -11.71500015258789,-23.41699981689453 C-11.71500015258789,-33.32400131225586 -6.35099983215332,-38.52799987792969 1.6890000104904175,-38.52799987792969 C8.723999977111816,-38.52799987792969 13.670999526977539,-35.22600173950195 13.670999526977539,-28.621000289916992 C13.670999526977539,-28.621000289916992 13.670999526977539,0 13.670999526977539,0 C13.670999526977539,0 26.726999282836914,0 26.726999282836914,0 C26.726999282836914,0 26.726999282836914,-29.32200050354004 26.726999282836914,-29.32200050354004 C26.726999282836914,-43.13199996948242 20.000999450683594,-50.0369987487793 6.936999797821045,-50.0369987487793z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,616.5,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M-0.03200000151991844,1.0010000467300415 C15.041999816894531,1.0010000467300415 23.975000381469727,-5.004000186920166 23.975000381469727,-15.111000061035156 C23.975000381469727,-23.017000198364258 18.614999771118164,-28.020000457763672 9.347000122070312,-29.121000289916992 C9.347000122070312,-29.121000289916992 -1.819000005722046,-30.621999740600586 -1.819000005722046,-30.621999740600586 C-6.843999862670898,-31.322999954223633 -8.630000114440918,-32.82400131225586 -8.630000114440918,-35.72600173950195 C-8.630000114440918,-39.12799835205078 -5.949999809265137,-40.83000183105469 -0.5899999737739563,-40.83000183105469 C6.556000232696533,-40.83000183105469 9.01200008392334,-39.12799835205078 9.793999671936035,-33.124000549316406 C9.793999671936035,-33.124000549316406 22.299999237060547,-35.82600021362305 22.299999237060547,-35.82600021362305 C20.402000427246094,-45.33300018310547 12.586000442504883,-50.0369987487793 -1.0369999408721924,-50.0369987487793 C-14.770999908447266,-50.0369987487793 -22.29800033569336,-44.43299865722656 -22.29800033569336,-35.125999450683594 C-22.29800033569336,-26.81999969482422 -17.22800064086914,-21.916000366210938 -7.4019999504089355,-20.415000915527344 C-7.4019999504089355,-20.415000915527344 1.7549999952316284,-19.11400032043457 1.7549999952316284,-19.11400032043457 C8.008000373840332,-18.21299934387207 11.043999671936035,-16.812000274658203 11.043999671936035,-13.710000038146973 C11.043999671936035,-10.407999992370605 6.7789998054504395,-8.706000328063965 0.8610000014305115,-8.706000328063965 C-6.396999835968018,-8.706000328063965 -9.859000205993652,-10.708000183105469 -10.751999855041504,-16.812000274658203 C-10.751999855041504,-16.812000274658203 -23.726999282836914,-13.510000228881836 -23.726999282836914,-13.510000228881836 C-22.274999618530273,-5.104000091552734 -13.543000221252441,1.0010000467300415 -0.03200000151991844,1.0010000467300415z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,666.5,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M19.81399917602539,-48.95199966430664 C19.81399917602539,-48.95199966430664 3.3329999446868896,-48.95199966430664 3.3329999446868896,-48.95199966430664 C3.3329999446868896,-48.95199966430664 3.3329999446868896,-63.78099822998047 3.3329999446868896,-63.78099822998047 C3.3329999446868896,-63.78099822998047 -9.53499984741211,-63.78099822998047 -9.53499984741211,-63.78099822998047 C-9.53499984741211,-63.78099822998047 -9.53499984741211,-48.95199966430664 -9.53499984741211,-48.95199966430664 C-9.53499984741211,-48.95199966430664 -20.7189998626709,-48.95199966430664 -20.7189998626709,-48.95199966430664 C-20.7189998626709,-48.95199966430664 -20.7189998626709,-37.28200149536133 -20.7189998626709,-37.28200149536133 C-20.7189998626709,-37.28200149536133 -9.53499984741211,-37.28200149536133 -9.53499984741211,-37.28200149536133 C-9.53499984741211,-37.28200149536133 -9.53499984741211,-15.243000030517578 -9.53499984741211,-15.243000030517578 C-9.53499984741211,-6.117000102996826 -3.4110000133514404,0 6.75,0 C6.75,0 18.474000930786133,0 18.474000930786133,0 C18.474000930786133,0 18.474000930786133,-11.232000350952148 18.474000930786133,-11.232000350952148 C18.474000930786133,-11.232000350952148 3.3329999446868896,-11.232000350952148 3.3329999446868896,-11.232000350952148 C3.3329999446868896,-11.232000350952148 3.3329999446868896,-37.28200149536133 3.3329999446868896,-37.28200149536133 C3.3329999446868896,-37.28200149536133 19.81399917602539,-37.28200149536133 19.81399917602539,-37.28200149536133 C19.81399917602539,-37.28200149536133 19.81399917602539,-48.95199966430664 19.81399917602539,-48.95199966430664z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,723,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M-1.5750000476837158,-10.508000373840332 C-11.381999969482422,-10.508000373840332 -17.354999542236328,-15.111000061035156 -17.354999542236328,-24.417999267578125 C-17.354999542236328,-33.82500076293945 -11.381999969482422,-38.52799987792969 -1.5750000476837158,-38.52799987792969 C8.67199993133545,-38.52799987792969 13.847999572753906,-34.025001525878906 13.847999572753906,-24.417999267578125 C13.847999572753906,-14.91100025177002 8.67199993133545,-10.508000373840332 -1.5750000476837158,-10.508000373840332z M13.470000267028809,-38.02799987792969 C9.944000244140625,-46.034000396728516 2.943000078201294,-50.0369987487793 -6.422999858856201,-50.0369987487793 C-21.408000946044922,-50.0369987487793 -30.333999633789062,-40.02899932861328 -30.333999633789062,-24.417999267578125 C-30.333999633789062,-16.711999893188477 -28.128999710083008,-10.607000350952148 -23.722000122070312,-6.004000186920166 C-19.424999237060547,-1.3009999990463257 -13.364999771118164,1.0010000467300415 -5.76200008392334,1.0010000467300415 C3.2730000019073486,1.0010000467300415 10.053999900817871,-2.9019999504089355 13.470000267028809,-10.708000183105469 C13.470000267028809,-10.708000183105469 13.470000267028809,0 13.470000267028809,0 C13.470000267028809,0 26.58799934387207,0 26.58799934387207,0 C26.58799934387207,0 26.58799934387207,-49.0359992980957 26.58799934387207,-49.0359992980957 C26.58799934387207,-49.0359992980957 13.470000267028809,-49.0359992980957 13.470000267028809,-49.0359992980957 C13.470000267028809,-49.0359992980957 13.470000267028809,-38.02799987792969 13.470000267028809,-38.02799987792969z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,788.25,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M0.9729999899864197,-10.508000373840332 C-9.1899995803833,-10.508000373840332 -15.121000289916992,-14.91100025177002 -15.121000289916992,-24.417999267578125 C-15.121000289916992,-34.025001525878906 -9.1899995803833,-38.52799987792969 0.9729999899864197,-38.52799987792969 C9.194999694824219,-38.52799987792969 14.213000297546387,-35.72600173950195 15.925999641418457,-27.6200008392334 C15.925999641418457,-27.6200008392334 28.950000762939453,-30.621999740600586 28.950000762939453,-30.621999740600586 C25.40999984741211,-43.53200149536133 15.131999969482422,-50.0369987487793 0.9729999899864197,-50.0369987487793 C-7.820000171661377,-50.0369987487793 -14.89900016784668,-47.73500061035156 -20.266000747680664,-43.03200149536133 C-25.746999740600586,-38.32899856567383 -28.488000869750977,-32.124000549316406 -28.488000869750977,-24.417999267578125 C-28.488000869750977,-16.812000274658203 -25.746999740600586,-10.706999778747559 -20.266000747680664,-6.004000186920166 C-14.89900016784668,-1.3009999990463257 -7.820000171661377,1.0010000467300415 0.9729999899864197,1.0010000467300415 C14.789999961853027,1.0010000467300415 25.29599952697754,-5.203999996185303 28.950000762939453,-18.413999557495117 C28.950000762939453,-18.413999557495117 15.925999641418457,-21.416000366210938 15.925999641418457,-21.416000366210938 C14.098999977111816,-13.3100004196167 9.079999923706055,-10.508000373840332 0.9729999899864197,-10.508000373840332z"></path>
</g>
</g>
<g style="display: block;" transform="matrix(1,0,0,1,850,82)" opacity="1">
<g opacity="1" transform="matrix(1,0,0,1,0,0)">
<path fill="rgb(0,0,0)" fill-opacity="1"
d=" M30.777000427246094,0 C30.777000427246094,0 8.23799991607666,-28.42099952697754 8.23799991607666,-28.42099952697754 C8.23799991607666,-28.42099952697754 30.090999603271484,-49.0359992980957 30.090999603271484,-49.0359992980957 C30.090999603271484,-49.0359992980957 12.998000144958496,-49.0359992980957 12.998000144958496,-49.0359992980957 C12.998000144958496,-49.0359992980957 -9.99899959564209,-26.503999710083008 -9.99899959564209,-26.503999710083008 C-9.99899959564209,-26.503999710083008 -9.875,-69.8010025024414 -9.875,-69.8010025024414 C-9.875,-69.8010025024414 -22.50200080871582,-69.8010025024414 -22.50200080871582,-69.8010025024414 C-22.50200080871582,-69.8010025024414 -22.50200080871582,0 -22.50200080871582,0 C-22.50200080871582,0 -9.875,0 -9.875,0 C-9.875,0 -9.875,-11.517000198364258 -9.875,-11.517000198364258 C-9.875,-11.517000198364258 0.5920000076293945,-20.827999114990234 0.5920000076293945,-20.827999114990234 C0.5920000076293945,-20.827999114990234 15.170000076293945,0 15.170000076293945,0 C15.170000076293945,0 30.777000427246094,0 30.777000427246094,0z"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1 +1,7 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><defs><style>.cls-1{fill:#232540;}</style></defs><path class="cls-1" d="M128,32.75c-57.02,0-103.24,46.22-103.24,103.24s46.22,103.24,103.24,103.24,103.24-46.22,103.24-103.24-46.22-103.24-103.24-103.24ZM128,71.79c16.58,0,30.02,13.44,30.02,30.02s-13.44,30.02-30.02,30.02-30.02-13.44-30.02-30.02,13.44-30.02,30.02-30.02ZM174,200.4c-30.67,17.98-61.34,17.98-92.01,0-1.2-.71-1.91-2.04-1.85-3.43,1.1-27.99,22.11-58.29,47.85-58.29s46.75,30.3,47.85,58.29c.05,1.4-.65,2.73-1.85,3.43Z"/></svg> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<style>.cls-1{fill:#232540;}</style>
</defs>
<path class="cls-1"
d="M128,32.75c-57.02,0-103.24,46.22-103.24,103.24s46.22,103.24,103.24,103.24,103.24-46.22,103.24-103.24-46.22-103.24-103.24-103.24ZM128,71.79c16.58,0,30.02,13.44,30.02,30.02s-13.44,30.02-30.02,30.02-30.02-13.44-30.02-30.02,13.44-30.02,30.02-30.02ZM174,200.4c-30.67,17.98-61.34,17.98-92.01,0-1.2-.71-1.91-2.04-1.85-3.43,1.1-27.99,22.11-58.29,47.85-58.29s46.75,30.3,47.85,58.29c.05,1.4-.65,2.73-1.85,3.43Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 557 B

After

Width:  |  Height:  |  Size: 592 B

View File

@@ -1 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><defs><style>.cls-1{fill:#232540;}</style></defs><path class="cls-1" d="M128,26.22c-56.61,0-102.51,45.9-102.51,102.51s45.9,102.51,102.51,102.51,102.51-45.9,102.51-102.51S184.61,26.22,128,26.22ZM152.89,51.99l1-5.93c35.15,11.04,60.73,43.92,60.73,82.67,0,9.55-1.55,18.74-4.43,27.34l-15.88,14.97c-1.22,1.15-3.03,1.39-4.51.59-1.86-1-2.94-3.01-2.74-5.11l1.77-19.34c.22-2.38,1.22-4.63,2.85-6.39l1.81-1.95c1.6-1.72,2.36-4.05,2.09-6.38l-.88-7.63c-.55-4.77-3.8-8.79-8.34-10.32l-3.72-1.26c-3.82-1.29-7.23-3.56-9.89-6.59l-4.88-5.56c-3.18-3.64-4.07-8.75-2.29-13.24l.96-2.45c1.78-4.51,1.84-9.52.16-14.07l-1.37-3.71c-1.4-3.81-4.38-6.81-8.18-8.24-3.01-1.13-4.79-4.23-4.26-7.4ZM89.18,162.15c-1.28-1.42-2.12-3.17-2.39-5.06-.51-3.52-1.37-9.42-1.84-12.59-.21-1.45-.76-2.82-1.59-4.02l-10.48-15c-1.93-2.76-2.51-6.24-1.59-9.47l3.02-10.63c.08-.25-.04-.52-.28-.64l-11.69-5.73c-1.76-.87-3.35-2.04-4.7-3.46l-5.42-5.69c-.38-.4-.68-.89-.89-1.41,12.99-24.61,37.47-42.25,66.26-45.71l2.09,6.36c1.46,3.66-.21,7.81-3.79,9.44l-17.85,8.09c-2.75,1.25-5.29,2.93-7.51,4.97l-8.71,8.02c-2.4,2.2-5.53,3.42-8.78,3.42h-5.17c-1.28,0-2.32,1.04-2.32,2.33v.79c0,.92.73,1.68,1.65,1.73l4.54.22c2.12.11,3.64,2.11,3.18,4.18-.53,2.32,1.53,4.41,3.86,3.91l12.07-2.54c4.76-1.01,9.73-.09,13.82,2.55l17.91,11.54,9.75,5.8c4.54,2.7,6.65,8.15,5.1,13.2l-.11.37-2.67,10.25c-1.2,4.59-4.74,8.2-9.31,9.48l-.7.2c-4.66,1.3-8.6,4.45-10.91,8.71l-1.09,2.02c-2.13,3.94-3.32,8.31-3.49,12.78l-.45,11.75c-.13,3.18-2.79,5.66-5.97,5.56-2.62-.09-4.85-1.93-5.44-4.48,0,0-2.4-12.1-3.45-14.87-.69-1.79-2.97-4.51-4.66-6.37ZM128,215.35c-11.26,0-22.03-2.16-31.91-6.1l.39-2.56c.39-2.49,1.82-4.68,3.95-6.02l8.73-5.52c2.8-1.77,6.5-.13,7.05,3.14.28,1.64,1.7,2.84,3.36,2.84h9.37c1.58,0,3.13-.44,4.48-1.26l1.64-.99c2.65-1.6,5.83-2.09,8.83-1.35l11.58,2.83c2.06.5,3.97,1.5,5.56,2.9l4.2,3.68c-11.29,5.39-23.91,8.41-37.23,8.41Z"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<style>.cls-1{fill:#232540;}</style>
</defs>
<path class="cls-1"
d="M128,26.22c-56.61,0-102.51,45.9-102.51,102.51s45.9,102.51,102.51,102.51,102.51-45.9,102.51-102.51S184.61,26.22,128,26.22ZM152.89,51.99l1-5.93c35.15,11.04,60.73,43.92,60.73,82.67,0,9.55-1.55,18.74-4.43,27.34l-15.88,14.97c-1.22,1.15-3.03,1.39-4.51.59-1.86-1-2.94-3.01-2.74-5.11l1.77-19.34c.22-2.38,1.22-4.63,2.85-6.39l1.81-1.95c1.6-1.72,2.36-4.05,2.09-6.38l-.88-7.63c-.55-4.77-3.8-8.79-8.34-10.32l-3.72-1.26c-3.82-1.29-7.23-3.56-9.89-6.59l-4.88-5.56c-3.18-3.64-4.07-8.75-2.29-13.24l.96-2.45c1.78-4.51,1.84-9.52.16-14.07l-1.37-3.71c-1.4-3.81-4.38-6.81-8.18-8.24-3.01-1.13-4.79-4.23-4.26-7.4ZM89.18,162.15c-1.28-1.42-2.12-3.17-2.39-5.06-.51-3.52-1.37-9.42-1.84-12.59-.21-1.45-.76-2.82-1.59-4.02l-10.48-15c-1.93-2.76-2.51-6.24-1.59-9.47l3.02-10.63c.08-.25-.04-.52-.28-.64l-11.69-5.73c-1.76-.87-3.35-2.04-4.7-3.46l-5.42-5.69c-.38-.4-.68-.89-.89-1.41,12.99-24.61,37.47-42.25,66.26-45.71l2.09,6.36c1.46,3.66-.21,7.81-3.79,9.44l-17.85,8.09c-2.75,1.25-5.29,2.93-7.51,4.97l-8.71,8.02c-2.4,2.2-5.53,3.42-8.78,3.42h-5.17c-1.28,0-2.32,1.04-2.32,2.33v.79c0,.92.73,1.68,1.65,1.73l4.54.22c2.12.11,3.64,2.11,3.18,4.18-.53,2.32,1.53,4.41,3.86,3.91l12.07-2.54c4.76-1.01,9.73-.09,13.82,2.55l17.91,11.54,9.75,5.8c4.54,2.7,6.65,8.15,5.1,13.2l-.11.37-2.67,10.25c-1.2,4.59-4.74,8.2-9.31,9.48l-.7.2c-4.66,1.3-8.6,4.45-10.91,8.71l-1.09,2.02c-2.13,3.94-3.32,8.31-3.49,12.78l-.45,11.75c-.13,3.18-2.79,5.66-5.97,5.56-2.62-.09-4.85-1.93-5.44-4.48,0,0-2.4-12.1-3.45-14.87-.69-1.79-2.97-4.51-4.66-6.37ZM128,215.35c-11.26,0-22.03-2.16-31.91-6.1l.39-2.56c.39-2.49,1.82-4.68,3.95-6.02l8.73-5.52c2.8-1.77,6.5-.13,7.05,3.14.28,1.64,1.7,2.84,3.36,2.84h9.37c1.58,0,3.13-.44,4.48-1.26l1.64-.99c2.65-1.6,5.83-2.09,8.83-1.35l11.58,2.83c2.06.5,3.97,1.5,5.56,2.9l4.2,3.68c-11.29,5.39-23.91,8.41-37.23,8.41Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -4,16 +4,19 @@
* @license https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html GNU General Public License v2.0 * @license https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html GNU General Public License v2.0
*/ */
function HostingSupport1984CopyEmailAddress( e ) { function HostingSupport1984CopyEmailAddress(e) {
e.preventDefault(); e.preventDefault();
var emailAddressTag = document.querySelector( '#hosting-support-1984-address' ); const emailAddressTag = document.querySelector('#hosting-support-1984-address');
emailAddressTag.select(); navigator.clipboard.writeText(emailAddressTag.value)
document.execCommand( 'copy' ); .catch(err => console.error("Clipboard write failed:", err));
} }
if (document.querySelector( '#hosting-support-1984-link' )) { document.querySelector('#hosting-support-1984-link')
document.querySelector( '#hosting-support-1984-link' ).addEventListener( ?.addEventListener('click', HostingSupport1984CopyEmailAddress);
'click',
HostingSupport1984CopyEmailAddress if (document.querySelector('#hosting-support-1984-link')) {
); document.querySelector('#hosting-support-1984-link').addEventListener(
'click',
HostingSupport1984CopyEmailAddress
);
} }

View File

@@ -7,51 +7,34 @@
* https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html * https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
**/ **/
#hostingsupport1984_support_widget {
background: #fffbee;
}
#adminmenu a.toplevel_page_hostingsupport1984_manage {
background-color: #b48701;
font-weight: bold;
}
#adminmenu a.toplevel_page_hostingsupport1984_manage:hover {
color: #fff;
}
#adminmenu a.toplevel_page_hostingsupport1984_manage div.wp-menu-image::before {
color: #fff;
}
#hosting-support-1984-main-links { #hosting-support-1984-main-links {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
gap: 0.2rem; gap: 0.2rem;
list-style-type: none; list-style-type: none;
} }
.hosting-support-1984-li { .hosting-support-1984-li {
} }
.hosting-support-1984-icon { .hosting-support-1984-icon {
width: 5.3em; width: 5.3em;
height: auto; height: auto;
display: block; display: block;
margin: auto; margin: auto;
} }
.hosting-support-1984-text { .hosting-support-1984-text {
text-align: center; text-align: center;
} }
#hosting-support-1984-logo { #hosting-support-1984-logo {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
#hosting-support-1984-logo img { #hosting-support-1984-logo img {
width: auto; width: auto;
height: 1.5em; height: 1.5em;
} }

View File

@@ -10,58 +10,67 @@
?> ?>
<div class="hosting-support-1984-support-links"> <div class="hosting-support-1984-support-links">
<ul id="hosting-support-1984-main-links"> <ul id="hosting-support-1984-main-links">
<li class="hosting-support-1984-li"> <li class="hosting-support-1984-li">
<a href="https://management.1984.hosting/accounts/settings/" target="_blank"> <a href="https://management.1984.hosting/accounts/settings/" target="_blank">
<div> <div>
<img class="hosting-support-1984-icon" src="<?php echo plugins_url( 'icons/profile.svg', A1984_HOSTING_SUPPORT_BASE_FILE ); ?>"> <img class="hosting-support-1984-icon"
</div> src="<?php echo plugins_url('icons/profile.svg', A1984_HOSTING_SUPPORT_BASE_FILE); ?>">
<div class="hosting-support-1984-text"> </div>
<?php esc_html_e( <div class="hosting-support-1984-text">
'My Profile', <?php esc_html_e(
'hostingsupport1984' 'My Profile',
); ?> 'hostingsupport1984'
</div> ); ?>
</a> </div>
</li> </a>
</li>
<li class="hosting-support-1984-li"> <li class="hosting-support-1984-li">
<a href="https://management.1984.hosting/dashboard/" target="_blank"> <a href="https://management.1984.hosting/dashboard/" target="_blank">
<div><img class="hosting-support-1984-icon" src="<?php echo plugins_url( 'icons/sites.svg', A1984_HOSTING_SUPPORT_BASE_FILE ); ?>"></div> <div><img class="hosting-support-1984-icon"
<div class="hosting-support-1984-text"> src="<?php echo plugins_url('icons/sites.svg', A1984_HOSTING_SUPPORT_BASE_FILE); ?>"></div>
<?php esc_html_e( <div class="hosting-support-1984-text">
'My Sites, Domains & VPSs', <?php esc_html_e(
'hostingsupport1984' 'My Sites, Domains & VPSs',
); ?> 'hostingsupport1984'
</div> ); ?>
</a> </div>
</li> </a>
<li class="hosting-support-1984-li"> </li>
<a href="<?php echo get_bloginfo('language') == 'is' ? 'https://kb.1984.is/doku.php?id=start' : 'https://kb.1984hosting.com/doku.php?id=start'; ?>" target="_blank"> <li class="hosting-support-1984-li">
<div><img class="hosting-support-1984-icon" src="<?php echo plugins_url( 'icons/knowledge-base.svg', A1984_HOSTING_SUPPORT_BASE_FILE ); ?>"></div> <a href="<?php echo get_bloginfo('language') == 'is' ? 'https://kb.1984.is/doku.php?id=start' : 'https://kb.1984hosting.com/doku.php?id=start'; ?>"
<div class="hosting-support-1984-text"> target="_blank">
<?php esc_html_e( <div><img class="hosting-support-1984-icon"
'Knowledge Base', src="<?php echo plugins_url('icons/knowledge-base.svg', A1984_HOSTING_SUPPORT_BASE_FILE); ?>">
'hostingsupport1984' </div>
); ?> <div class="hosting-support-1984-text">
</div> <?php esc_html_e(
</a> 'Knowledge Base',
</li> 'hostingsupport1984'
); ?>
</div>
</a>
</li>
<li class="hosting-support-1984-li"> <li class="hosting-support-1984-li">
<a href="mailto:1984@1984.is" target="_blank"> <a href="mailto:1984@1984.is" target="_blank">
<div><img class="hosting-support-1984-icon" src="<?php echo plugins_url( 'icons/contact-support.svg', A1984_HOSTING_SUPPORT_BASE_FILE ); ?>"></div> <div><img class="hosting-support-1984-icon"
<div class="hosting-support-1984-text"> src="<?php echo plugins_url('icons/contact-support.svg', A1984_HOSTING_SUPPORT_BASE_FILE); ?>">
<?php esc_html_e( </div>
'Contact Support', <div class="hosting-support-1984-text">
'hostingsupport1984' <?php esc_html_e(
); ?> 'Contact Support',
</div> 'hostingsupport1984'
</a> ); ?>
</li> </div>
</ul> </a>
</li>
</ul>
<div id="hosting-support-1984-logo"> <div id="hosting-support-1984-logo">
<a href="<?php echo get_bloginfo('language') == 'is' ? 'https://1984.is' : 'https://1984.hosting'; ?>" target="_blank"><img src="<?php echo plugins_url( 'icons/1984-hosting-logo.webp', A1984_HOSTING_SUPPORT_BASE_FILE ); ?>"></a> <a href="<?php echo get_bloginfo('language') == 'is' ? 'https://1984.is' : 'https://1984.hosting'; ?>"
</div> target="_blank"><img
src="<?php echo plugins_url('icons/1984-hosting-logo.webp', A1984_HOSTING_SUPPORT_BASE_FILE); ?>"></a>
</div>
</div> </div>