PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 2.0.7
Adminify – White Label, Admin Menu Editor, Login Customizer v2.0.7
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
← All changes | Inc/Classes/OutputCSS.php +288 -123 4.2.52.0.7 View file →
@@ -1,130 +1,295 @@
1 1 <?php
2 2
3 -namespace PXLBSAdminify\Inc\Classes;
3 +namespace WPAdminify\Inc\Classes;
4 4
5 -use PXLBSAdminify\Inc\Admin\AdminSettings;
6 -use PXLBSAdminify\Inc\Classes\OutputCSS_Body;
7 -
8 -
5 +use WPAdminify\Inc\Utils ;
6 +use WPAdminify\Inc\Admin\AdminSettings ;
7 +use WPAdminify\Inc\Classes\OutputCSS_Body ;
8 +use WPAdminify\Inc\Admin\AdminSettingsModel ;
9 9 // no direct access allowed
10 -if (!defined('ABSPATH')) {
11 - exit;
10 +if ( !defined( 'ABSPATH' ) ) {
11 + exit;
12 12 }
13 -
14 -class OutputCSS
13 +class OutputCSS extends AdminSettingsModel
15 14 {
16 - public $options;
15 + public $url ;
16 + public function __construct()
17 + {
18 + $this->options = (array) AdminSettings::get_instance()->get( 'menu_layout_settings' );
19 + add_action( 'admin_enqueue_scripts', [ $this, 'jltwp_adminify_output_scripts' ], 100 );
20 + add_filter( 'admin_body_class', [ $this, 'add_body_classes' ] );
21 + new OutputCSS_Body();
22 + }
23 +
24 + public function add_body_classes( $classes )
25 + {
26 + $color_mode = (array) AdminSettings::get_instance()->get();
27 + $color_mode = ( !empty($color_mode['admin_bar_mode']) ? $color_mode['admin_bar_mode'] : 'light' );
28 + $active_menu_style = ( !empty($this->options['active_menu_style']) ? $this->options['active_menu_style'] : 'classic' );
29 + $menu_hover_submenu = ( !empty($this->options['menu_hover_submenu']) ? $this->options['menu_hover_submenu'] : 'classic' );
30 + $bodyclass = '';
31 + if ( $color_mode == 'light' ) {
32 + $bodyclass .= ' adminify-light-mode ';
33 + }
34 + if ( $color_mode == 'dark' ) {
35 + $bodyclass .= ' adminify-dark-mode ';
36 + }
37 + // Submenu Hover Style
38 +
39 + if ( $menu_hover_submenu == 'classic' ) {
40 + $bodyclass .= ' adminify-default-v-menu ';
41 + } elseif ( $menu_hover_submenu == 'accordion' ) {
42 + $bodyclass .= ' adminify-accordion-v-menu ';
43 + } elseif ( $menu_hover_submenu == 'toggle' ) {
44 + $bodyclass .= ' adminify-toggle-v-menu ';
45 + }
46 +
47 + // Active Menu Style
48 +
49 + if ( $active_menu_style == 'classic' ) {
50 + } elseif ( $active_menu_style == 'rounded' ) {
51 + $bodyclass .= ' adminify-rounded-v-menu ';
52 + $bodyclass .= ' adminify-round-open-menu ';
53 + }
54 +
55 + return $classes . $bodyclass;
56 + }
57 +
58 + public function jltwp_adminify_output_scripts()
59 + {
60 + $jltwp_adminify_output_css = '';
61 + // Menu Styles
62 + // Typography Settings
63 + if ( !empty($this->options['menu_styles']['menu_typography']['font-family']) ) {
64 + if ( $this->options['layout_type'] === 'vertical' ) {
65 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { font-family: ' . $this->options['menu_styles']['menu_typography']['font-family'] . '}';
66 + }
67 + }
68 + if ( !empty($this->options['menu_styles']['menu_typography']['font-weight']) ) {
69 + if ( $this->options['layout_type'] === 'vertical' ) {
70 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { font-weight: ' . $this->options['menu_styles']['menu_typography']['font-weight'] . '}';
71 + }
72 + }
73 + if ( !empty($this->options['menu_styles']['menu_typography']['text-align']) ) {
74 + if ( $this->options['layout_type'] === 'vertical' ) {
75 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { text-align: ' . $this->options['menu_styles']['menu_typography']['text-align'] . '}';
76 + }
77 + }
78 + if ( !empty($this->options['menu_styles']['menu_typography']['text-transform']) ) {
79 + if ( $this->options['layout_type'] === 'vertical' ) {
80 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { text-transform: ' . $this->options['menu_styles']['menu_typography']['text-transform'] . '}';
81 + }
82 + }
83 + if ( !empty($this->options['menu_styles']['menu_typography']['font-size']) ) {
84 + if ( $this->options['layout_type'] === 'vertical' ) {
85 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { font-size: ' . $this->options['menu_styles']['menu_typography']['font-size'] . 'px;}';
86 + }
87 + }
88 + if ( !empty($this->options['menu_styles']['menu_typography']['line-height']) ) {
89 + if ( $this->options['layout_type'] === 'vertical' ) {
90 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { line-height: ' . $this->options['menu_styles']['menu_typography']['line-height'] . 'px;}';
91 + }
92 + }
93 + if ( !empty($this->options['menu_styles']['menu_typography']['letter-spacing']) ) {
94 + if ( $this->options['layout_type'] === 'vertical' ) {
95 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top, .wp-adminify #adminmenu .wp-submenu li a { letter-spacing: ' . $this->options['menu_styles']['menu_typography']['letter-spacing'] . 'px;}';
96 + }
97 + }
98 + // Menu Wrapper Padding
99 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['top']) && $this->options['menu_styles']['menu_wrapper_padding']['top'] !== '' ) {
100 + if ( $this->options['layout_type'] === 'vertical' ) {
101 + $jltwp_adminify_output_css .= '.wp_adminify_sidebar_admin-menu { padding-top: ' . esc_attr( $this->options['menu_styles']['menu_wrapper_padding']['top'] ) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
102 + }
103 + }
104 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['right']) && $this->options['menu_styles']['menu_wrapper_padding']['right'] !== '' ) {
105 + if ( $this->options['layout_type'] === 'vertical' ) {
106 + $jltwp_adminify_output_css .= '.wp_adminify_sidebar_admin-menu { padding-right: ' . esc_attr( $this->options['menu_styles']['menu_wrapper_padding']['right'] ) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
107 + }
108 + }
109 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['bottom']) && $this->options['menu_styles']['menu_wrapper_padding']['bottom'] !== '' ) {
110 + if ( $this->options['layout_type'] === 'vertical' ) {
111 + $jltwp_adminify_output_css .= '.wp_adminify_sidebar_admin-menu { padding-bottom: ' . esc_attr( $this->options['menu_styles']['menu_wrapper_padding']['bottom'] ) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
112 + }
113 + }
114 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['left']) && $this->options['menu_styles']['menu_wrapper_padding']['left'] !== '' ) {
115 + if ( $this->options['layout_type'] === 'vertical' ) {
116 + $jltwp_adminify_output_css .= '.wp_adminify_sidebar_admin-menu { padding-left: ' . esc_attr( $this->options['menu_styles']['menu_wrapper_padding']['left'] ) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
117 + }
118 + }
119 + // Sub Menu Wrapper Padding
120 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['top']) && $this->options['menu_styles']['submenu_wrapper_padding']['top'] !== '' ) {
121 + if ( $this->options['layout_type'] === 'vertical' ) {
122 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu { padding-top: ' . esc_attr( $this->options['menu_styles']['submenu_wrapper_padding']['top'] ) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
123 + }
124 + }
125 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['right']) && $this->options['menu_styles']['submenu_wrapper_padding']['right'] !== '' ) {
126 + if ( $this->options['layout_type'] === 'vertical' ) {
127 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu { padding-right: ' . esc_attr( $this->options['menu_styles']['submenu_wrapper_padding']['right'] ) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
128 + }
129 + }
130 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['bottom']) && $this->options['menu_styles']['submenu_wrapper_padding']['bottom'] !== '' ) {
131 + if ( $this->options['layout_type'] === 'vertical' ) {
132 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu { padding-bottom: ' . esc_attr( $this->options['menu_styles']['submenu_wrapper_padding']['bottom'] ) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
133 + }
134 + }
135 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['left']) && $this->options['menu_styles']['submenu_wrapper_padding']['left'] !== '' ) {
136 + if ( $this->options['layout_type'] === 'vertical' ) {
137 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu { padding-left: ' . esc_attr( $this->options['menu_styles']['submenu_wrapper_padding']['left'] ) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
138 + }
139 + }
140 + // Vertical Menu Parent Padding
141 + if ( !empty($this->options['layout_type']) === 'vertical' ) {
142 + if ( !empty($this->options['menu_styles']['menu_vertical_padding']) ) {
143 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp-submenu-wrap, .wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top { padding:' . esc_attr( $this->options['menu_styles']['menu_vertical_padding'] ) . 'px 0;}';
144 + }
145 + }
146 + // Submenu Item Padding
147 + if ( !empty($this->options['layout_type']) === 'vertical' ) {
148 + // Sub Menu Vertical Padding
149 + if ( !empty($this->options['menu_styles']['submenu_vertical_space']) ) {
150 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp-submenu li a { padding:' . esc_attr( $this->options['menu_styles']['submenu_vertical_space'] ) . 'px 0px !important;}';
151 + }
152 + }
153 + // Parent Menu Colors
154 + // Background Color
155 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['wrap_bg']) ) {
156 + if ( $this->options['layout_type'] === 'vertical' ) {
157 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu, .wp-adminify #adminmenuback, .wp-adminify #adminmenuwrap, .wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open { background:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['wrap_bg'] ) . ' !important;}';
158 + }
159 + }
160 + // Menu Item Hover Background
161 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['hover_bg']) ) {
162 + if ( $this->options['layout_type'] === 'vertical' ) {
163 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top:hover { background:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['hover_bg'] ) . ' !important;}';
164 + }
165 + }
166 + // Text Color
167 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['text_color']) ) {
168 +
169 + if ( $this->options['layout_type'] === 'vertical' ) {
170 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a { color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['text_color'] ) . ' !important;}';
171 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a .wp-adminify-icon-button:before { color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['text_color'] ) . ' !important;}';
172 + }
173 +
174 + }
175 + // Text Color
176 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['text_hover']) ) {
177 +
178 + if ( $this->options['layout_type'] === 'vertical' ) {
179 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top:hover { color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['text_hover'] ) . ' !important;}';
180 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top:hover .wp-adminify-icon-button:before { color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['text_hover'] ) . ' !important;}';
181 + }
182 +
183 + }
184 + // Active Menu Background Color
185 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['active_bg']) ) {
186 + if ( $this->options['layout_type'] === 'vertical' ) {
187 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top.current { background:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['active_bg'] ) . ' !important;}';
188 + }
189 + }
190 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['active_color']) ) {
191 + if ( $this->options['layout_type'] === 'vertical' ) {
192 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top > a.menu-top.current { color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['active_color'] ) . ' !important;}';
193 + }
194 + }
195 + // Sub Menu Colors
196 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['wrap_bg']) ) {
197 +
198 + if ( $this->options['layout_type'] === 'vertical' ) {
199 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu, .wp-adminify #adminmenu .wp-not-current-submenu .wp-submenu { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['wrap_bg'] ) . ' !important;}';
200 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu, .wp-adminify #adminmenu .wp-not-current-submenu .wp-submenu { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['wrap_bg'] ) . ' !important;}';
201 + }
202 +
203 + }
204 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['hover_bg']) ) {
205 +
206 + if ( $this->options['layout_type'] === 'vertical' ) {
207 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu li a:hover { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['hover_bg'] ) . ' !important;}';
208 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu li a:hover { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['hover_bg'] ) . ' !important;}';
209 + }
210 +
211 + }
212 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['text_color']) ) {
213 +
214 + if ( $this->options['layout_type'] === 'vertical' ) {
215 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu li a { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['text_color'] ) . ' !important;}';
216 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu li a { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['text_color'] ) . ' !important;}';
217 + }
218 +
219 + }
220 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['text_hover']) ) {
221 +
222 + if ( $this->options['layout_type'] === 'vertical' ) {
223 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu li a:hover { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['text_hover'] ) . ' !important;}';
224 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu li a:hover { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['text_hover'] ) . ' !important;}';
225 + }
226 +
227 + }
228 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['active_bg']) ) {
229 +
230 + if ( $this->options['layout_type'] === 'vertical' ) {
231 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu li a.current { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['active_bg'] ) . ' !important;}';
232 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu li a.current { background:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['active_bg'] ) . ' !important;}';
233 + }
234 +
235 + }
236 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['active_color']) ) {
237 +
238 + if ( $this->options['layout_type'] === 'vertical' ) {
239 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top .wp-submenu li a.current { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['active_color'] ) . ' !important;}';
240 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li.menu-top.wp-menu-open .wp-submenu li a.current { color:' . esc_attr( $this->options['menu_styles']['sub_menu_colors']['active_color'] ) . ' !important;}';
241 + }
242 +
243 + }
244 + // Notification Counter
245 + // Background Color
246 + if ( !empty($this->options['menu_styles']['notif_colors']['notif_bg']) ) {
247 + if ( $this->options['layout_type'] === 'vertical' ) {
248 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp_adminify_admin-menu li .awaiting-mod, .wp-adminify #adminmenu .wp_adminify_admin-menu li .update-plugins, .wp-adminify #adminmenu .wp_adminify_admin-menu #sidemenu li a span.update-plugins, .wp-adminify #adminmenu .wp_adminify_admin-menu li a.wp-has-current-submenu .update-plugins
249 + { background-color:' . esc_attr( $this->options['menu_styles']['notif_colors']['notif_bg'] ) . ' !important;}';
250 + }
251 + }
252 + if ( !empty($this->options['menu_styles']['notif_colors']['notif_color']) ) {
253 + if ( $this->options['layout_type'] === 'vertical' ) {
254 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .awaiting-mod, .wp-adminify #adminmenu .update-plugins, .wp-adminify #sidemenu li a span.update-plugins, .wp-adminify #adminmenu li a.wp-has-current-submenu .update-plugins { color:' . esc_attr( $this->options['menu_styles']['notif_colors']['notif_color'] ) . ';}';
255 + }
256 + }
257 + // Custom CSS
258 + $custom_css_js = AdminSettings::get_instance()->get();
259 + if ( !empty($custom_css_js['custom_css']) ) {
260 + $jltwp_adminify_output_css .= $custom_css_js['custom_css'];
261 + }
262 + if ( Utils::is_plugin_active( 'brizy/brizy.php' ) ) {
263 + $jltwp_adminify_output_css .= '.brz-review-notice-container a { padding-left: 14px !important; }';
264 + }
265 + // Combine the values from above and minifiy them.
266 + $jltwp_adminify_output_css = preg_replace( '#/\\*.*?\\*/#s', '', $jltwp_adminify_output_css );
267 + $jltwp_adminify_output_css = preg_replace( '/\\s*([{}|:;,])\\s+/', '$1', $jltwp_adminify_output_css );
268 + $jltwp_adminify_output_css = preg_replace( '/\\s\\s+(.*)/', '$1', $jltwp_adminify_output_css );
269 + $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
270 +
271 + if ( !empty($adminify_ui) ) {
272 + wp_add_inline_style( 'wp-adminify-admin', wp_strip_all_tags( $jltwp_adminify_output_css ) );
273 + } else {
274 + wp_add_inline_style( 'wp-adminify-default-ui', wp_strip_all_tags( $jltwp_adminify_output_css ) );
275 + }
276 +
277 + // Custom JS
278 + $custom_js = ( !empty($custom_css_js['custom_js']) ? $custom_css_js['custom_js'] : '' );
279 +
280 + if ( !empty($custom_js) ) {
281 + $custom_js_formatted = "\n<!-- Start of WP Adminify - Admin Area Custom JS -->\n";
282 + $custom_js_formatted .= $custom_js;
283 + $custom_js_formatted .= "\n<!-- /End of WP Adminify - Admin Area Custom JS -->\n";
284 +
285 + if ( !empty($adminify_ui) ) {
286 + wp_add_inline_style( 'wp-adminify-admin', wp_strip_all_tags( $jltwp_adminify_output_css ) );
287 + } else {
288 + wp_add_inline_style( 'wp-adminify-default-ui', wp_strip_all_tags( $jltwp_adminify_output_css ) );
289 + }
290 +
291 + }
292 +
293 + }
17 294
18 - public function __construct()
19 - {
20 - $this->options = (array) AdminSettings::get_instance()->get();
21 -
22 - new OutputCSS_Body();
23 -
24 - if (is_multisite() && is_network_admin()) {
25 - return; // only display to network admin if multisite is enbaled
26 - }
27 -
28 - add_action('admin_enqueue_scripts', [$this, 'output_styles'], 100);
29 - add_action('admin_footer', [$this, 'output_scripts'], 100);
30 - add_filter('admin_body_class', [$this, 'add_body_classes']);
31 - }
32 -
33 - public function add_body_classes($classes)
34 - {
35 - $folded = $this->options['menu_layout_settings']['menu_mode'] === 'icon_menu' ? 'folded' : '';
36 - // Per-user color_mode meta (saved by the topbar toggle) overrides the global
37 - // admin_ui_mode. Without this, toggling Dark would not persist visually on
38 - // reload because the body class would stay at the global default ('light').
39 - $global_color_mode = !empty($this->options['light_dark_mode']['admin_ui_mode']) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light';
40 - $user_color_mode = get_user_meta(get_current_user_id(), 'color_mode', true);
41 - $color_mode = !empty($user_color_mode) ? $user_color_mode : $global_color_mode;
42 - $color_preset = !empty($this->options['adminify_theme']) ? $this->options['adminify_theme'] : 'preset1';
43 - // $icon_style = !empty($this->options['menu_layout_settings']['icon_style']) ? $this->options['menu_layout_settings']['icon_style'] : 'classic';
44 - // $menu_hover_submenu = !empty($this->options['menu_layout_settings']['menu_hover_submenu']) ? $this->options['menu_layout_settings']['menu_hover_submenu'] : 'classic';
45 - // $menu_mode = !empty($this->options['menu_layout_settings']['menu_mode']) ? $this->options['menu_layout_settings']['menu_mode'] : 'classic';
46 -
47 - $bodyclass = '';
48 - if($folded) {
49 - $bodyclass .= ' ' . $folded;
50 - }
51 -
52 - if ($color_mode == 'light') {
53 - $bodyclass .= ' adminify-light-mode ';
54 - }
55 - if ($color_mode == 'dark') {
56 - $bodyclass .= ' adminify-dark-mode ';
57 - }
58 -
59 - if ($color_preset != 'preset1') {
60 - $bodyclass .= ' color-preset-adminify-icon-white';
61 - }
62 -
63 -
64 - // // Submenu Hover Style
65 - // if ($menu_hover_submenu == 'classic') {
66 - // $bodyclass .= ' adminify-default-v-menu ';
67 - // } elseif ($menu_hover_submenu == 'accordion') {
68 - // $bodyclass .= ' adminify-accordion-v-menu ';
69 - // } elseif ($menu_hover_submenu == 'toggle') {
70 - // $bodyclass .= ' adminify-toggle-v-menu ';
71 - // }
72 -
73 - // // Active Menu Style
74 - // if (($menu_mode == 'rounded') || (($menu_mode == 'icon_menu') && ($icon_style == 'rounded'))) {
75 - // $bodyclass .= ' adminify-rounded-v-menu ';
76 - // $bodyclass .= ' adminify-round-open-menu ';
77 - // }
78 -
79 - return $classes . $bodyclass;
80 - }
81 -
82 - public function output_styles()
83 - {
84 - // $pxlbsadminify_output_css = '';
85 - // $pxlbsadminify_output_css.= 'body.wp-adminify{';
86 -
87 - // $pxlbsadminify_output_css.= '}';
88 -
89 - // // Combine the values from above and minifiy them.
90 - // $pxlbsadminify_output_css = preg_replace('#/\*.*?\*/#s', '', $pxlbsadminify_output_css);
91 - // $pxlbsadminify_output_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $pxlbsadminify_output_css);
92 - // $pxlbsadminify_output_css = preg_replace('/\s\s+(.*)/', '$1', $pxlbsadminify_output_css);
93 -
94 - // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
95 -
96 - // if (!empty($adminify_ui)) {
97 - // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($pxlbsadminify_output_css));
98 - // } else {
99 - // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($pxlbsadminify_output_css));
100 - // }
101 -
102 - // Custom CSS
103 - if (!empty($this->options['devtools_tabs']['custom_css'])) {
104 - echo "\n<!-- Start of Adminify - Admin Area Custom CSS -->\n";
105 - echo "<style>\n";
106 - echo esc_html( wp_strip_all_tags($this->options['devtools_tabs']['custom_css']) );
107 - echo "\n</style>";
108 - echo "\n<!-- /End of Adminify - Admin Area Custom CSS -->\n";
109 - }
110 - }
111 -
112 - public function output_scripts()
113 - {
114 - // Custom JS (admin-defined developer tool, saved only by users with the plugin's settings capability).
115 - if (!empty($this->options['devtools_tabs']['custom_js'])) {
116 - $custom_js = html_entity_decode($this->options['devtools_tabs']['custom_js']);
117 - echo "\n<!-- Start of Adminify - Admin Area Custom JS -->\n";
118 - // Emit through the core helper, which builds a properly-formed inline <script> tag.
119 - if (function_exists('wp_print_inline_script_tag')) {
120 - wp_print_inline_script_tag($custom_js);
121 - } else {
122 - // Fallback for WP < 5.7: neutralise any premature closing tag before printing.
123 - echo "<script>\n";
124 - echo str_replace('</script>', '<\/script>', $custom_js); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- executable inline JS cannot be HTML-escaped; closing tag is neutralised and the value is admin-only config.
125 - echo "\n</script>";
126 - }
127 - echo "\n<!-- /End of Adminify - Admin Area Custom JS -->\n";
128 - }
129 - }
130 -}
295 +}