PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.1
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.1
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Classes / OutputCSS_Body.php

OutputCSS_Body.php in Adminify – White Label, Admin Menu Editor, Login Customizer 3.2.4.1, at Inc/Classes/OutputCSS_Body.php

204 lines 18.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Classes;
4
5 use WPAdminify\Inc\Utils;
6 use WPAdminify\Inc\Admin\AdminSettings;
7 use WPAdminify\Inc\Admin\AdminSettingsModel;
8
9 // no direct access allowed
10 if (!defined('ABSPATH')) {
11 exit;
12 }
13 class OutputCSS_Body extends AdminSettingsModel
14 {
15
16 public $url;
17 public function __construct()
18 {
19 $this->options = (array) AdminSettings::get_instance()->get();
20
21 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_output_body_styles'], 9999);
22
23 // Customize Colors Preset
24 // add_action('wp_head', [$this, 'jltwp_adminify_output_body_preset_vars']);
25 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_output_body_preset_vars']);
26 }
27
28
29 public function jltwp_adminify_output_body_preset_vars()
30 {
31 global $pagenow;
32 if ($pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php') {
33 return;
34 }
35
36 if (array_key_exists('adminify_theme', $this->options) && !empty($this->options['adminify_theme'])) {
37 $theme = $this->options['adminify_theme'];
38 } else {
39 $theme = 'preset1'; // get the default value dynamically
40 }
41
42 $preset = (array) Utils::get_theme_presets($theme);
43
44 if (empty($preset)) {
45 $preset = $this->options['adminify_theme_custom_colors'];
46 }
47 $preset_style = '';
48
49 foreach ($preset as $prop => $val) {
50 $preset_style .= sprintf('%s:%s;', esc_attr($prop), esc_attr($val));
51 }
52
53 if (empty($preset_style)) {
54 return;
55 }
56
57 printf('<style>body.wp-adminify{%s}</style>', wp_strip_all_tags($preset_style));
58
59 wp_enqueue_script('adminify-theme-presetter', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-theme-presetter.js', ['jquery'], null, true);
60
61 wp_localize_script('adminify-theme-presetter', 'adminify_preset_themes', Utils::get_theme_presets());
62 }
63
64
65 public function jltwp_adminify_output_body_styles()
66 {
67 $jltwp_adminify_output_body_css = '';
68 $admin_bg_type = !empty($this->options['admin_general_bg']) ? $this->options['admin_general_bg'] : 'color';
69
70 // Background Types
71 $admin_bg_color = !empty($this->options['admin_general_bg_color']) ? $this->options['admin_general_bg_color'] : '';
72
73 // Background Types
74 if ($admin_bg_type) {
75 $jltwp_adminify_output_body_css .= 'html, body.wp-adminify{';
76
77 // Background Type: Color
78 if ($admin_bg_type == 'color') {
79 if (!empty($admin_bg_color)) {
80 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($admin_bg_color) . ';';
81 }
82 }
83
84 $jltwp_adminify_output_body_css .= '}';
85 }
86
87 // Primary Button Settings
88 $button_primary_color = !empty($this->options['adminify_theme_custom_colors']['--adminify-btn-bg']) ? esc_attr($this->options['adminify_theme_custom_colors']['--adminify-btn-bg']) : '#0347FF';
89 $button_secondary_color = !empty($this->options['admin_general_button_color']['secondary_color']) ? esc_attr($this->options['admin_general_button_color']['secondary_color']) : '#fff';
90
91 // Primary Button Fill Coloe
92 if ($button_primary_color || $button_secondary_color) {
93 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .actions input[type=submit]:hover, .wp-adminify #wpbody-content .interface-interface-skeleton__header .edit-post-header .edit-post-header__settings button.block-editor-post-preview__button-toggle:hover, #editor .block-editor-block-styles__variants .components-button.is-active, .wp-adminify.block-editor-page .editor-post-publish-panel .components-button.is-secondary:hover, .wp-adminify .media-modal .media-frame-content button:not(.delete-attachment):hover, .wp-adminify .media-upload-form .drag-drop-inside #plupload-browse-button:hover, .wp-adminify #wp-media-grid .media-frame .uploader-inline-content button.browser:hover, .wp-adminify .is-secondary:not(.wp-editor-wrap button):hover, .wp-adminify #wpbody-content #createuser .wp-generate-pw:hover, .wp-adminify #wpbody-content #createuser .wp-hide-pw:hover, .wp-adminify #wpbody-content #your-profile .wp-generate-pw:hover, .wp-adminify .button-secondary:not(.wp-editor-wrap button):hover, .wp-adminify #wpbody-content input[type=submit]#create-page:hover, .wp-adminify.themes-php #wpbody-content .theme-browser .theme:not(.add-new-theme) .theme-actions .button.activate:hover, .wp-adminify .media-frame-content .wp-filter button.select-mode-toggle-button:hover, .wp-adminify #wpbody-content #your-profile #destroy-sessions:hover,
94 .wp-adminify .is-primary:not(.wp-editor-wrap button, #adminify-data-saved-message),.wp-adminify--folder-widget .folder--header a, .wp-adminify.themes-php #wpbody-content .theme-browser .theme .theme-actions .button:not(.activate), .wp-adminify.plugin-install-php #wpbody-content .plugin-card .plugin-card-top .action-links .plugin-action-buttons .button.activate-now, .wp-adminify.plugin-install-php #wpbody-content .plugin-card .plugin-card-top .action-links .plugin-action-buttons .button.install-now, .wp-adminify #file-editor-warning .file-editor-warning-content p .button.file-editor-warning-dismiss, .wp-adminify .privacy-settings-accordion-actions button, .wp-adminify #wpbody-content .metabox-holder .postbox-container .postbox-header + .inside .button:not(.rwmb-meta-box .rwmb-field .rwmb-input .wp-picker-container .button.wp-color-result), .wp-adminify #wpbody-content .metabox-holder .postbox-container .postbox-header + .inside input[type=submit], .wp-adminify #wpbody-content .page-title-action, .wp-adminify #wpbody-content .interface-interface-skeleton__header .edit-post-header .edit-post-header__settings button.editor-post-publish-button__button, .wp-adminify #wpbody-content .metabox-holder .postbox-header + .inside input[type=submit], .wp-adminify #wpbody-content input[type=submit]:not(.actions .button, #create-page, .adminify-reset-all), .wp-adminify #wpbody-content .metabox-holder .postbox-header + .inside .button:not(.wp-editor-wrap button, .rwmb-meta-box .rwmb-field .rwmb-input .wp-picker-container .button.wp-color-result, .rwmb-field .rwmb-input .wp-picker-container .wp-picker-input-wrap .wp-picker-clear), .wp-adminify .button-primary:not(.wp-editor-wrap button), .wp-customizer .wp-full-overlay-sidebar .control-panel-themes .button, .wp-adminify.themes-php #wpbody-content .theme-browser .theme:not(.add-new-theme) .more-details, .wp-adminify #wpbody-content .subsubsub li a .count, .wp-adminify #e-admin-top-bar-root .page-title-action, .wp-adminify #wpbody-content .elementor-button.elementor-button-success, .wp-adminify .elementor-button-go-pro, .wp-adminify .health-check-body .site-health-view-passed, .wp-adminify .health-check-body .site-health-copy-buttons button, .wp-adminify #wpbody-content #documentation #docs-lookup:not([disabled]), .wp-adminify #wpbody-content .form-table.permalink-structure .available-structure-tags button.active, .wp-adminify #wpadminify-admin-columns .columns.is-desktop button{';
95
96 if (!empty($button_primary_color)) {
97 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($button_primary_color) . ' !important;';
98 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($button_primary_color) . ' !important;';
99 }
100 if (isset($button_secondary_color)) {
101 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_secondary_color) . ' !important;';
102 }
103
104 $jltwp_adminify_output_body_css .= '}';
105
106 // for link
107 if ($button_primary_color) {
108 $jltwp_adminify_output_body_css .= '.wp-adminify .components-button.is-tertiary:not(.edit-site-navigation-panel__back-to-dashboard), .wp-adminify #e-dashboard-overview .e-overview__header .button:hover .dashicons, .wp-adminify.plugin-install-php #wpbody-content .plugin-card .plugin-card-top .action-links .plugin-action-buttons .open-plugin-details-modal, .wp-adminify #wpbody-content .widefat.importers .importer-item .importer-action a{
109 color: ' . esc_attr($button_primary_color) . ' !important;
110 }';
111 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .health-check-body .site-health-view-passed:hover .icon{
112 border-color: ' . esc_attr($button_primary_color) . ' !important;
113 }';
114 }
115
116 // Primary Button Fill Hover Color
117 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .actions input[type=submit], .wp-adminify #wpbody-content .interface-interface-skeleton__header .edit-post-header .edit-post-header__settings button.block-editor-post-preview__button-toggle, #editor .block-editor-block-styles__variants .components-button.is-active:hover, .wp-adminify.block-editor-page .editor-post-publish-panel .components-button.is-secondary, .wp-adminify .media-modal .media-frame-content button:not(.delete-attachment), .wp-adminify .media-upload-form .drag-drop-inside #plupload-browse-button, .wp-adminify #wp-media-grid .media-frame .uploader-inline-content button.browser, .wp-adminify .is-secondary:not(.wp-editor-wrap button), .wp-adminify #wpbody-content #createuser .wp-generate-pw, .wp-adminify #wpbody-content #createuser .wp-hide-pw, .wp-adminify #wpbody-content #your-profile .wp-generate-pw, .wp-adminify .button-secondary:not(.wp-editor-wrap button), .wp-adminify #wpbody-content input[type=submit]#create-page, .wp-adminify.themes-php #wpbody-content .theme-browser .theme:not(.add-new-theme) .theme-actions .button.activate, .wp-adminify .media-modal .media-frame-content .actions a, .wp-adminify .media-frame-content .wp-filter button.select-mode-toggle-button, .wp-adminify #wpbody-content #your-profile #destroy-sessions, .wp-adminify #wpbody-content #documentation #docs-lookup[disabled],
118 .wp-adminify .is-primary:not(.wp-editor-wrap button, #adminify-data-saved-message):hover, .wp-adminify--folder-widget .folder--header a:hover, .wp-adminify.themes-php #wpbody-content .theme-browser .theme .theme-actions .button:not(.activate):hover, .wp-adminify.plugin-install-php #wpbody-content .plugin-card .plugin-card-top .action-links .plugin-action-buttons .button.activate-now:hover, .wp-adminify.plugin-install-php #wpbody-content .plugin-card .plugin-card-top .action-links .plugin-action-buttons .button.install-now:hover, .wp-adminify #file-editor-warning .file-editor-warning-content p .button.file-editor-warning-dismiss:hover, .wp-adminify .privacy-settings-accordion-actions button:hover, .wp-adminify #wpbody-content .metabox-holder .postbox-container .postbox-header + .inside .button:not(.rwmb-meta-box .rwmb-field .rwmb-input .wp-picker-container .button.wp-color-result):hover, .wp-adminify #wpbody-content .metabox-holder .postbox-container .postbox-header + .inside input[type=submit]:hover, .wp-adminify #wpbody-content .page-title-action:hover, .wp-adminify #wpbody-content .interface-interface-skeleton__header .edit-post-header .edit-post-header__settings button.editor-post-publish-button__button:hover, .wp-adminify #wpbody-content .metabox-holder .postbox-header + .inside input[type=submit]:hover, .wp-adminify #wpbody-content input[type=submit]:not(.actions .button, #create-page, #analyze .is-clickable,):hover, .wp-adminify #wpbody-content .metabox-holder .postbox-header + .inside .button:not(.wp-editor-wrap button, .rwmb-meta-box .rwmb-field .rwmb-input .wp-picker-container .button.wp-color-result, .rwmb-field .rwmb-input .wp-picker-container .wp-picker-input-wrap .wp-picker-clear):hover, .wp-adminify .button-primary:not(.wp-editor-wrap button):hover, .wp-customizer .wp-full-overlay-sidebar .control-panel-themes .button:hover, .wp-adminify #wpbody-content .subsubsub li a, .wp-adminify #e-admin-top-bar-root .page-title-action:hover, .wp-adminify #wpbody-content .elementor-button.elementor-button-success:hover, .wp-adminify .elementor-button-go-pro:hover, .wp-adminify .health-check-body .site-health-view-passed:hover, .wp-adminify .health-check-body .site-health-copy-buttons button:hover, .wp-adminify #wpbody-content #documentation #docs-lookup:not([disabled]):hover, .wp-adminify #wpadminify-admin-columns .columns.is-desktop button:hover{';
119
120 if (isset($button_primary_color)) {
121 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_primary_color) . ' !important;';
122 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($button_primary_color) . ' !important;';
123 }
124 if (isset($button_secondary_color)) {
125 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($button_secondary_color) . ' !important;';
126 }
127 $jltwp_adminify_output_body_css .= '}';
128 $jltwp_adminify_output_body_css .= '#editor .block-editor-block-styles__variants .components-button.is-active:hover .block-editor-block-styles__item-text{';
129 if (isset($button_primary_color)) {
130 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_primary_color) . ' !important;';
131 }
132 $jltwp_adminify_output_body_css .= '}';
133 }
134
135 // Danger Button Settings
136 $danger_button_primary_color = !empty($this->options['admin_danger_button_color']['primary_color']) ? esc_attr($this->options['admin_danger_button_color']['primary_color']) : '#c30052';
137 $danger_button_secondary_color = !empty($this->options['admin_danger_button_color']['secondary_color']) ? esc_attr($this->options['admin_danger_button_color']['secondary_color']) : '#fff';
138
139 // Danger Button Fill Color
140 if ($danger_button_primary_color || $danger_button_secondary_color) {
141 $jltwp_adminify_output_body_css .= '.wp-adminify.adminify-ui .media-modal .media-frame-content .actions .delete-attachment:hover, .wp-adminify.adminify-ui .media-frame-content .media-toolbar .media-toolbar-secondary .delete-selected-button:hover,
142 .wp-adminify.adminify-ui .clear-button .components-panel .components-panel__body button.is-destructive, .wp-adminify.adminify-ui #wpbody-content .interface-interface-skeleton__body .components-panel .components-panel__body button.is-destructive{';
143
144 if (isset($danger_button_primary_color)) {
145 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_primary_color) . ' !important;';
146 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
147 }
148 if (isset($danger_button_secondary_color)) {
149 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
150 }
151 $jltwp_adminify_output_body_css .= '}';
152
153 // WP Adminify Setttings: Reset All Button
154 // $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .adminify-options.wp-adminify-settings .adminify-reset-all{';
155 // $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_primary_color) . ' !important;';
156 // $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
157 // $jltwp_adminify_output_body_css .= '}';
158
159 // WP Adminify Setttings: Reset All Hover Button
160 // $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .adminify-options.wp-adminify-settings .adminify-reset-all:hover{';
161 // $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
162 // $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_secondary_color) . ' !important;';
163 // $jltwp_adminify_output_body_css .= '}';
164
165
166 // Danger Button Fill Hover Color
167 $jltwp_adminify_output_body_css .= '.wp-adminify.adminify-ui .media-modal .media-frame-content .actions .delete-attachment, .wp-adminify.adminify-ui .media-frame-content .media-toolbar .media-toolbar-secondary .delete-selected-button,
168 .wp-adminify.adminify-ui .clear-button .components-panel .components-panel__body button.is-destructive:hover, .wp-adminify.adminify-ui #wpbody-content .interface-interface-skeleton__body .components-panel .components-panel__body button.is-destructive:hover{';
169
170 if (isset($danger_button_secondary_color)) {
171 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
172 }
173 if (isset($danger_button_primary_color)) {
174 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($danger_button_primary_color) . ' !important;';
175 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
176 }
177
178 $jltwp_adminify_output_body_css .= '}';
179
180 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .components-button.is-primary.is-busy{
181 background-image: linear-gradient(-45deg, ' . esc_attr($button_secondary_color) . ' 33%, ' . esc_attr($button_primary_color) . ' 33%, ' . esc_attr($button_primary_color) . ' 70%, ' . esc_attr($button_secondary_color) . ' 70%);
182 }';
183 }
184
185 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .subsubsub li a .count{
186 border: 0 !important;
187 }';
188 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .subsubsub li a:not(.current){
189 border-color: #E5E5E5 !important;
190 }';
191
192 // Combine the values from above and minifiy them.
193 $jltwp_adminify_output_body_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_output_body_css);
194 $jltwp_adminify_output_body_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_output_body_css);
195 $jltwp_adminify_output_body_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_output_body_css);
196
197 if (!empty($this->options['admin_ui'])) {
198 wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_output_body_css));
199 } else {
200 wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_output_body_css));
201 }
202 }
203 }
204