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

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