PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 2.0.9
Adminify – White Label, Admin Menu Editor, Login Customizer v2.0.9
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 +423 -123 4.2.152.0.9 View file →
@@ -1,130 +1,430 @@
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 $options ;
17 + public $admin_bar_options ;
18 + public $custom_css_js ;
19 + public function __construct()
20 + {
21 + $this->options = (array) AdminSettings::get_instance()->get( 'menu_layout_settings' );
22 + $this->admin_bar_options = (array) AdminSettings::get_instance()->get( 'admin_bar_settings' );
23 + $this->admin_bar_logo_light = (array) AdminSettings::get_instance()->get( 'admin_bar_light_mode' );
24 + $this->admin_bar_logo_dark = (array) AdminSettings::get_instance()->get( 'admin_bar_dark_mode' );
25 + $this->custom_css_js = AdminSettings::get_instance()->get();
26 + add_action( 'admin_enqueue_scripts', [ $this, 'jltwp_adminify_output_styles' ], 100 );
27 + add_action( 'admin_footer', [ $this, 'jltwp_adminify_output_scripts' ], 100 );
28 + add_filter( 'admin_body_class', [ $this, 'add_body_classes' ] );
29 + new OutputCSS_Body();
30 + }
31 +
32 + public function add_body_classes( $classes )
33 + {
34 + $color_mode = (array) AdminSettings::get_instance()->get();
35 + $color_mode = ( !empty($color_mode['admin_bar_mode']) ? $color_mode['admin_bar_mode'] : 'light' );
36 + $active_menu_style = ( !empty($this->options['active_menu_style']) ? $this->options['active_menu_style'] : 'classic' );
37 + $menu_hover_submenu = ( !empty($this->options['menu_hover_submenu']) ? $this->options['menu_hover_submenu'] : 'classic' );
38 + $bodyclass = '';
39 + if ( $color_mode == 'light' ) {
40 + $bodyclass .= ' adminify-light-mode ';
41 + }
42 + if ( $color_mode == 'dark' ) {
43 + $bodyclass .= ' adminify-dark-mode ';
44 + }
45 + // Submenu Hover Style
46 +
47 + if ( $menu_hover_submenu == 'classic' ) {
48 + $bodyclass .= ' adminify-default-v-menu ';
49 + } elseif ( $menu_hover_submenu == 'accordion' ) {
50 + $bodyclass .= ' adminify-accordion-v-menu ';
51 + } elseif ( $menu_hover_submenu == 'toggle' ) {
52 + $bodyclass .= ' adminify-toggle-v-menu ';
53 + }
54 +
55 + // Active Menu Style
56 +
57 + if ( $active_menu_style == 'classic' ) {
58 + } elseif ( $active_menu_style == 'rounded' ) {
59 + $bodyclass .= ' adminify-rounded-v-menu ';
60 + $bodyclass .= ' adminify-round-open-menu ';
61 + }
62 +
63 + return $classes . $bodyclass;
64 + }
65 +
66 + public function jltwp_adminify_output_styles()
67 + {
68 + $jltwp_adminify_output_css = '';
69 + // Welcome Panel Styles.
70 + $latest_wordpress_version = get_bloginfo( 'version' );
71 + if ( $latest_wordpress_version >= '5.0' && $latest_wordpress_version <= '5.8.4' ) {
72 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .button { text-shadow: none !important }';
73 + }
74 +
75 + if ( $latest_wordpress_version >= '5.9' && $latest_wordpress_version <= '5.9.3' || $latest_wordpress_version >= '6.0' ) {
76 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .welcome-panel .welcome-panel-header h2 { font-size: 30px;line-height: 36px; }';
77 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .welcome-panel .welcome-panel-header p { font-size: 16px; }';
78 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .welcome-panel-header { padding: 70px 408px 70px 48px; }';
79 + $jltwp_adminify_output_css .= '.welcome-panel a { text-decoration: underline; }';
80 + }
81 +
82 +
83 + if ( $latest_wordpress_version >= '6.0' ) {
84 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .welcome-panel .welcome-panel-header p a{ color:#3c434a !important; }';
85 + $jltwp_adminify_output_css .= '.wp-adminify #wpbody-content .welcome-panel-header { padding: 80px 408px 80px 48px; }';
86 + }
87 +
88 + // Logo Text Light
89 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-size']) ) {
90 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { font-size: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-size'] . 'px !important; }';
91 + }
92 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-family']) ) {
93 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { font-family: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-family'] . '; }';
94 + }
95 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-weight']) ) {
96 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { font-weight: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['font-weight'] . ' !important; }';
97 + }
98 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['text-transform']) ) {
99 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { text-transform: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['text-transform'] . '; }';
100 + }
101 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['text-decoration']) ) {
102 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { text-decoration: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['text-decoration'] . '; }';
103 + }
104 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['line-height']) ) {
105 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { line-height: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['line-height'] . 'px !important; }';
106 + }
107 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['letter-spacing']) ) {
108 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { letter-spacing: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['letter-spacing'] . 'px; }';
109 + }
110 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['word-spacing']) ) {
111 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { word-spacing: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['word-spacing'] . 'px; }';
112 + }
113 + if ( !empty($this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['color']) ) {
114 + $jltwp_adminify_output_css .= '.wp-adminify .navbar .wp-adminify-site-name { color: ' . $this->admin_bar_logo_light['admin_bar_light_logo_text_typo']['color'] . ' !important; }';
115 + }
116 + // Logo Text Dark
117 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-size']) ) {
118 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { font-size: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-size'] . 'px !important; }';
119 + }
120 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-family']) ) {
121 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { font-family: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-family'] . '; }';
122 + }
123 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-weight']) ) {
124 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { font-weight: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['font-weight'] . ' !important; }';
125 + }
126 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['text-transform']) ) {
127 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { text-transform: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['text-transform'] . '; }';
128 + }
129 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['text-decoration']) ) {
130 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { text-decoration: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['text-decoration'] . '; }';
131 + }
132 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['line-height']) ) {
133 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { line-height: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['line-height'] . 'px !important; }';
134 + }
135 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['letter-spacing']) ) {
136 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { letter-spacing: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['letter-spacing'] . 'px; }';
137 + }
138 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['word-spacing']) ) {
139 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { word-spacing: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['word-spacing'] . 'px; }';
140 + }
141 + if ( !empty($this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['color']) ) {
142 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-dark-mode .navbar .wp-adminify-site-name { color: ' . $this->admin_bar_logo_dark['admin_bar_dark_logo_text_typo']['color'] . ' !important; }';
143 + }
144 + // Admin Bar Typography Settings
145 + // font size
146 +
147 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['font-size']) ) {
148 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-icon:before { font-size: ' . ($this->admin_bar_options['admin_bar_font_typography']['font-size'] - 1) . 'px !important; }';
149 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { font-size: ' . $this->admin_bar_options['admin_bar_font_typography']['font-size'] . 'px !important; }';
150 + }
151 +
152 + // text align
153 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['text-align']) ) {
154 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { text-align: ' . $this->admin_bar_options['admin_bar_font_typography']['text-align'] . '; }';
155 + }
156 + // text transform
157 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['text-transform']) ) {
158 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { text-transform: ' . $this->admin_bar_options['admin_bar_font_typography']['text-transform'] . '; }';
159 + }
160 + // text decoration
161 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['text-decoration']) ) {
162 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { text-decoration: ' . $this->admin_bar_options['admin_bar_font_typography']['text-decoration'] . '; }';
163 + }
164 + // line height
165 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['line-height']) ) {
166 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { line-height: ' . $this->admin_bar_options['admin_bar_font_typography']['line-height'] . 'px !important; }';
167 + }
168 + // letter spacing
169 + if ( !empty($this->admin_bar_options['admin_bar_font_typography']['letter-spacing']) ) {
170 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-top-menu > li > a.ab-item > .ab-label, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item, .wp-adminify.adminify-top_bar #wpadminbar .ab-submenu > li > a.ab-item span { letter-spacing: ' . $this->admin_bar_options['admin_bar_font_typography']['letter-spacing'] . 'px !important; }';
171 + }
172 + // Menu Styles
173 + // Typography Settings
174 + // if (!empty($this->options['menu_styles']['menu_typography']['font-family'])) {
175 + // if ($this->options['layout_type'] === 'vertical') {
176 + // $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'] . '}';
177 + // }
178 + // if (jltwp_adminify()->can_use_premium_code__premium_only()) {
179 + // if ($this->options['layout_type'] === 'horizontal') {
180 + // $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a, .wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu .wp-submenu li a { font-family: ' . $this->options['menu_styles']['menu_typography']['font-family'] . '}';
181 + // }
182 + // }
183 + // }
184 + if ( !empty($this->options['menu_styles']['menu_typography']['font-weight']) ) {
185 + if ( $this->options['layout_type'] === 'vertical' ) {
186 + $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'] . '}';
187 + }
188 + }
189 + if ( !empty($this->options['menu_styles']['menu_typography']['text-align']) ) {
190 + if ( $this->options['layout_type'] === 'vertical' ) {
191 + $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'] . '}';
192 + }
193 + }
194 + if ( !empty($this->options['menu_styles']['menu_typography']['text-transform']) ) {
195 + if ( $this->options['layout_type'] === 'vertical' ) {
196 + $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'] . '}';
197 + }
198 + }
199 + if ( !empty($this->options['menu_styles']['menu_typography']['font-size']) ) {
200 + if ( $this->options['layout_type'] === 'vertical' ) {
201 + $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;}';
202 + }
203 + }
204 + if ( !empty($this->options['menu_styles']['menu_typography']['line-height']) ) {
205 + if ( $this->options['layout_type'] === 'vertical' ) {
206 + $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;}';
207 + }
208 + }
209 + if ( !empty($this->options['menu_styles']['menu_typography']['letter-spacing']) ) {
210 + if ( $this->options['layout_type'] === 'vertical' ) {
211 + $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;}';
212 + }
213 + }
214 + if ( !empty($this->options['menu_styles']['menu_typography']['text-decoration']) ) {
215 + if ( $this->options['layout_type'] === 'vertical' ) {
216 + $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-decoration: ' . $this->options['menu_styles']['menu_typography']['text-decoration'] . ';}';
217 + }
218 + }
219 + // Menu Wrapper Padding
220 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['top']) && $this->options['menu_styles']['menu_wrapper_padding']['top'] !== '' ) {
221 + if ( $this->options['layout_type'] === 'vertical' ) {
222 + $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'] . ';}';
223 + }
224 + }
225 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['right']) && $this->options['menu_styles']['menu_wrapper_padding']['right'] !== '' ) {
226 + if ( $this->options['layout_type'] === 'vertical' ) {
227 + $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'] . ';}';
228 + }
229 + }
230 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['bottom']) && $this->options['menu_styles']['menu_wrapper_padding']['bottom'] !== '' ) {
231 + if ( $this->options['layout_type'] === 'vertical' ) {
232 + $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'] . ';}';
233 + }
234 + }
235 + if ( !empty($this->options['menu_styles']['menu_wrapper_padding']['left']) && $this->options['menu_styles']['menu_wrapper_padding']['left'] !== '' ) {
236 + if ( $this->options['layout_type'] === 'vertical' ) {
237 + $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'] . ';}';
238 + }
239 + }
240 + // Sub Menu Wrapper Padding
241 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['top']) && $this->options['menu_styles']['submenu_wrapper_padding']['top'] !== '' ) {
242 + if ( $this->options['layout_type'] === 'vertical' ) {
243 + $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'] . ';}';
244 + }
245 + }
246 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['right']) && $this->options['menu_styles']['submenu_wrapper_padding']['right'] !== '' ) {
247 + if ( $this->options['layout_type'] === 'vertical' ) {
248 + $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'] . ';}';
249 + }
250 + }
251 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['bottom']) && $this->options['menu_styles']['submenu_wrapper_padding']['bottom'] !== '' ) {
252 + if ( $this->options['layout_type'] === 'vertical' ) {
253 + $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'] . ';}';
254 + }
255 + }
256 + if ( !empty($this->options['menu_styles']['submenu_wrapper_padding']['left']) && $this->options['menu_styles']['submenu_wrapper_padding']['left'] !== '' ) {
257 + if ( $this->options['layout_type'] === 'vertical' ) {
258 + $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'] . ';}';
259 + }
260 + }
261 + // Vertical Menu Parent Padding
262 + if ( !empty($this->options['layout_type']) === 'vertical' ) {
263 + if ( !empty($this->options['menu_styles']['menu_vertical_padding']) ) {
264 + $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;}';
265 + }
266 + }
267 + // Submenu Item Padding
268 + if ( !empty($this->options['layout_type']) === 'vertical' ) {
269 + // Sub Menu Vertical Padding
270 + if ( !empty($this->options['menu_styles']['submenu_vertical_space']) ) {
271 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp-submenu li a { padding:' . esc_attr( $this->options['menu_styles']['submenu_vertical_space'] ) . 'px 0px !important;}';
272 + }
273 + }
274 + // Parent Menu Colors
275 + // Background Color
276 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['wrap_bg']) ) {
277 + if ( $this->options['layout_type'] === 'vertical' ) {
278 + $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;}';
279 + }
280 + }
281 + // Menu Item Hover Background
282 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['hover_bg']) ) {
283 + if ( $this->options['layout_type'] === 'vertical' ) {
284 + $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;}';
285 + }
286 + }
287 + // Text Color
288 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['text_color']) ) {
289 +
290 + if ( $this->options['layout_type'] === 'vertical' ) {
291 + $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;}';
292 + $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;}';
293 + }
294 +
295 + }
296 + // Text Color
297 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['text_hover']) ) {
298 +
299 + if ( $this->options['layout_type'] === 'vertical' ) {
300 + $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;}';
301 + $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;}';
302 + }
303 +
304 + }
305 + // Active Menu Background Color
306 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['active_bg']) ) {
307 +
308 + if ( $this->options['layout_type'] === 'vertical' ) {
309 + $jltwp_adminify_output_css .= '.wp-adminify:not(.adminify-round-open-menu) #adminmenu .wp_adminify_admin-menu li.menu-top.wp-adminify-active > a { background:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['active_bg'] ) . ' !important;}';
310 + $jltwp_adminify_output_css .= '.wp-adminify.adminify-round-open-menu #adminmenu .wp_adminify_admin-menu li.wp-adminify-active > a.menu-top::before, .wp-adminify.adminify-round-open-menu #adminmenu .wp_adminify_admin-menu li.wp-adminify-active > a.menu-top:after{ background-color:' . esc_attr( $this->options['menu_styles']['parent_menu_colors']['active_bg'] ) . ' !important;}';
311 + }
312 +
313 + }
314 + if ( !empty($this->options['menu_styles']['parent_menu_colors']['active_color']) ) {
315 + if ( $this->options['layout_type'] === 'vertical' ) {
316 + $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;}';
317 + }
318 + }
319 + // Sub Menu Colors
320 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['wrap_bg']) ) {
321 +
322 + if ( $this->options['layout_type'] === 'vertical' ) {
323 + $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;}';
324 + $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;}';
325 + }
326 +
327 + }
328 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['hover_bg']) ) {
329 +
330 + if ( $this->options['layout_type'] === 'vertical' ) {
331 + $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;}';
332 + $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;}';
333 + }
334 +
335 + }
336 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['text_color']) ) {
337 +
338 + if ( $this->options['layout_type'] === 'vertical' ) {
339 + $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;}';
340 + $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;}';
341 + }
342 +
343 + }
344 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['text_hover']) ) {
345 +
346 + if ( $this->options['layout_type'] === 'vertical' ) {
347 + $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;}';
348 + $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;}';
349 + }
350 +
351 + }
352 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['active_bg']) ) {
353 +
354 + if ( $this->options['layout_type'] === 'vertical' ) {
355 + $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;}';
356 + $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;}';
357 + }
358 +
359 + }
360 + if ( !empty($this->options['menu_styles']['sub_menu_colors']['active_color']) ) {
361 +
362 + if ( $this->options['layout_type'] === 'vertical' ) {
363 + $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;}';
364 + $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;}';
365 + }
366 +
367 + }
368 + // Notification Counter
369 + // Background Color
370 + if ( !empty($this->options['menu_styles']['notif_colors']['notif_bg']) ) {
371 + if ( $this->options['layout_type'] === 'vertical' ) {
372 + $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
373 + { background-color:' . esc_attr( $this->options['menu_styles']['notif_colors']['notif_bg'] ) . ' !important;}';
374 + }
375 + }
376 + if ( !empty($this->options['menu_styles']['notif_colors']['notif_color']) ) {
377 + if ( $this->options['layout_type'] === 'vertical' ) {
378 + $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'] ) . ';}';
379 + }
380 + }
381 + if ( Utils::is_plugin_active( 'brizy/brizy.php' ) ) {
382 + $jltwp_adminify_output_css .= '.brz-review-notice-container a { padding-left: 14px !important; }';
383 + }
384 + // Combine the values from above and minifiy them.
385 + $jltwp_adminify_output_css = preg_replace( '#/\\*.*?\\*/#s', '', $jltwp_adminify_output_css );
386 + $jltwp_adminify_output_css = preg_replace( '/\\s*([{}|:;,])\\s+/', '$1', $jltwp_adminify_output_css );
387 + $jltwp_adminify_output_css = preg_replace( '/\\s\\s+(.*)/', '$1', $jltwp_adminify_output_css );
388 + $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
389 +
390 + if ( !empty($adminify_ui) ) {
391 + wp_add_inline_style( 'wp-adminify-admin', wp_strip_all_tags( $jltwp_adminify_output_css ) );
392 + } else {
393 + wp_add_inline_style( 'wp-adminify-default-ui', wp_strip_all_tags( $jltwp_adminify_output_css ) );
394 + }
395 +
396 + // Custom CSS
397 +
398 + if ( !empty($this->custom_css_js['custom_css']) ) {
399 + $stat_tag = "/<style>/m";
400 + $end_tag = "#</style>#m";
401 + $result_start = preg_match( $stat_tag, $this->custom_css_js['custom_css'] );
402 + $result_end = preg_match( $end_tag, $this->custom_css_js['custom_css'] );
403 + echo "\n<!-- Start of WP Adminify - Admin Area Custom CSS -->\n" ;
404 + echo ( !$result_start && !$result_end ? '<style>' : '' ) ;
405 + echo "\n{$this->custom_css_js['custom_css']}\n" ;
406 + echo ( !$result_start && !$result_end ? '</style>' : '' ) ;
407 + echo "\n<!-- /End of WP Adminify - Admin Area Custom CSS -->\n" ;
408 + }
409 +
410 + }
411 +
412 + public function jltwp_adminify_output_scripts()
413 + {
414 + // Custom JS
415 +
416 + if ( !empty($this->custom_css_js['custom_js']) ) {
417 + $stat_tag = "/<script>/m";
418 + $end_tag = "#</script>#m";
419 + $result_start = preg_match( $stat_tag, $this->custom_css_js['custom_js'] );
420 + $result_end = preg_match( $end_tag, $this->custom_css_js['custom_js'] );
421 + echo "\n<!-- Start of WP Adminify - Admin Area Custom JS -->\n" ;
422 + echo ( !$result_start && !$result_end ? '<script>' : '' ) ;
423 + echo "\n{$this->custom_css_js['custom_js']}\n" ;
424 + echo ( !$result_start && !$result_end ? '</script>' : '' ) ;
425 + echo "\n<!-- /End of WP Adminify - Admin Area Custom JS -->\n" ;
426 + }
427 +
428 + }
17 429
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 -}
430 +}