PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.5
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.5
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.5, at Inc/Classes/OutputCSS_Body.php

209 lines 18.3 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 // For Default UI
22 // if (empty($this->options['admin_ui'])) {
23 // return;
24 // }
25
26 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_output_body_styles'], 9999);
27
28 // Customize Colors Preset
29 // add_action('wp_head', [$this, 'jltwp_adminify_output_body_preset_vars']);
30 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_output_body_preset_vars']);
31 }
32
33
34 public function jltwp_adminify_output_body_preset_vars()
35 {
36 global $pagenow;
37 if ($pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php') {
38 return;
39 }
40
41 if (array_key_exists('adminify_theme', $this->options) && !empty($this->options['adminify_theme'])) {
42 $theme = $this->options['adminify_theme'];
43 } else {
44 $theme = 'preset1'; // get the default value dynamically
45 }
46
47 $preset = (array) Utils::get_theme_presets($theme);
48
49 if (empty($preset)) {
50 $preset = $this->options['adminify_theme_custom_colors'];
51 }
52 $preset_style = '';
53
54 foreach ($preset as $prop => $val) {
55 $preset_style .= sprintf('%s:%s;', esc_attr($prop), esc_attr($val));
56 }
57
58 if (empty($preset_style)) {
59 return;
60 }
61
62 printf('<style>body.wp-adminify{%s}</style>', wp_strip_all_tags($preset_style));
63
64 wp_enqueue_script('adminify-theme-presetter', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-theme-presetter.js', ['jquery'], null, true);
65
66 wp_localize_script('adminify-theme-presetter', 'adminify_preset_themes', Utils::get_theme_presets());
67 }
68
69
70 public function jltwp_adminify_output_body_styles()
71 {
72 $jltwp_adminify_output_body_css = '';
73 $admin_bg_type = !empty($this->options['admin_general_bg']) ? $this->options['admin_general_bg'] : 'color';
74
75 // Background Types
76 $admin_bg_color = !empty($this->options['admin_general_bg_color']) ? $this->options['admin_general_bg_color'] : '';
77
78 // Background Types
79 if ($admin_bg_type) {
80 $jltwp_adminify_output_body_css .= 'html, body.wp-adminify{';
81
82 // Background Type: Color
83 if ($admin_bg_type == 'color') {
84 if (!empty($admin_bg_color)) {
85 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($admin_bg_color) . ';';
86 }
87 }
88
89 $jltwp_adminify_output_body_css .= '}';
90 }
91
92 // Primary Button Settings
93 $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';
94 $button_secondary_color = !empty($this->options['admin_general_button_color']['secondary_color']) ? esc_attr($this->options['admin_general_button_color']['secondary_color']) : '#fff';
95
96 // Primary Button Fill Coloe
97 if ($button_primary_color || $button_secondary_color) {
98 $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,
99 .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{';
100
101 if (!empty($button_primary_color)) {
102 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($button_primary_color) . ' !important;';
103 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($button_primary_color) . ' !important;';
104 }
105 if (isset($button_secondary_color)) {
106 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_secondary_color) . ' !important;';
107 }
108
109 $jltwp_adminify_output_body_css .= '}';
110
111 // for link
112 if ($button_primary_color) {
113 $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{
114 color: ' . esc_attr($button_primary_color) . ' !important;
115 }';
116 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .health-check-body .site-health-view-passed:hover .icon{
117 border-color: ' . esc_attr($button_primary_color) . ' !important;
118 }';
119 }
120
121 // Primary Button Fill Hover Color
122 $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], .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{';
123
124 if (isset($button_primary_color)) {
125 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_primary_color) . ' !important;';
126 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($button_primary_color) . ' !important;';
127 }
128 if (isset($button_secondary_color)) {
129 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($button_secondary_color) . ' !important;';
130 }
131 $jltwp_adminify_output_body_css .= '}';
132 $jltwp_adminify_output_body_css .= '#editor .block-editor-block-styles__variants .components-button.is-active:hover .block-editor-block-styles__item-text{';
133 if (isset($button_primary_color)) {
134 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($button_primary_color) . ' !important;';
135 }
136 $jltwp_adminify_output_body_css .= '}';
137 }
138
139 // Danger Button Settings
140 $danger_button_primary_color = !empty($this->options['admin_danger_button_color']['primary_color']) ? esc_attr($this->options['admin_danger_button_color']['primary_color']) : '#c30052';
141 $danger_button_secondary_color = !empty($this->options['admin_danger_button_color']['secondary_color']) ? esc_attr($this->options['admin_danger_button_color']['secondary_color']) : '#fff';
142
143 // Danger Button Fill Color
144 if ($danger_button_primary_color || $danger_button_secondary_color) {
145 $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,
146 .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{';
147
148 if (isset($danger_button_primary_color)) {
149 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_primary_color) . ' !important;';
150 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
151 }
152 if (isset($danger_button_secondary_color)) {
153 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
154 }
155 $jltwp_adminify_output_body_css .= '}';
156
157 // WP Adminify Setttings: Reset All Button
158 // $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .adminify-options.wp-adminify-settings .adminify-reset-all{';
159 // $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_primary_color) . ' !important;';
160 // $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
161 // $jltwp_adminify_output_body_css .= '}';
162
163 // WP Adminify Setttings: Reset All Hover Button
164 // $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .adminify-options.wp-adminify-settings .adminify-reset-all:hover{';
165 // $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
166 // $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_secondary_color) . ' !important;';
167 // $jltwp_adminify_output_body_css .= '}';
168
169
170 // Danger Button Fill Hover Color
171 $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,
172 .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{';
173
174 if (isset($danger_button_secondary_color)) {
175 $jltwp_adminify_output_body_css .= 'background-color: ' . esc_attr($danger_button_secondary_color) . ' !important;';
176 }
177 if (isset($danger_button_primary_color)) {
178 $jltwp_adminify_output_body_css .= 'color: ' . esc_attr($danger_button_primary_color) . ' !important;';
179 $jltwp_adminify_output_body_css .= 'border: 1px solid ' . esc_attr($danger_button_primary_color) . ' !important;';
180 }
181
182 $jltwp_adminify_output_body_css .= '}';
183
184 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .components-button.is-primary.is-busy{
185 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%);
186 }';
187 }
188
189 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .subsubsub li a .count{
190 border: 0 !important;
191 }';
192 $jltwp_adminify_output_body_css .= '.wp-adminify #wpbody-content .subsubsub li a:not(.current){
193 border-color: #E5E5E5 !important;
194 }';
195
196
197 // Combine the values from above and minifiy them.
198 $jltwp_adminify_output_body_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_output_body_css);
199 $jltwp_adminify_output_body_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_output_body_css);
200 $jltwp_adminify_output_body_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_output_body_css);
201
202 if (!empty($this->options['admin_ui'])) {
203 wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_output_body_css));
204 } else {
205 wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_output_body_css));
206 }
207 }
208 }
209