PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 1.0.7
Adminify – White Label, Admin Menu Editor, Login Customizer v1.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 +451 -104 4.2.131.0.7 View file →
@@ -1,130 +1,477 @@
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;
5 +use WPAdminify\Inc\Admin\AdminSettings;
6 +use WPAdminify\Inc\Classes\OutputCSS_Body;
7 +use WPAdminify\Inc\Admin\AdminSettingsModel;
7 8
8 -
9 9 // no direct access allowed
10 -if (!defined('ABSPATH')) {
11 - exit;
12 -}
10 +if (!defined('ABSPATH')) exit;
13 11
14 -class OutputCSS
12 +class OutputCSS extends AdminSettingsModel
15 13 {
16 - public $options;
14 + public $url;
17 15
18 - public function __construct()
19 - {
20 - $this->options = (array) AdminSettings::get_instance()->get();
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'], 99);
20 + add_filter('admin_body_class', [$this, 'add_body_classes']);
21 + new OutputCSS_Body();
22 + }
21 23
22 - new OutputCSS_Body();
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';
23 30
24 - if (is_multisite() && is_network_admin()) {
25 - return; // only display to network admin if multisite is enbaled
26 - }
31 + $bodyclass = '';
32 + if ($color_mode == 'light') {
33 + $bodyclass .= ' adminify-light-mode ';
34 + }
35 + if ($color_mode == 'dark') {
36 + $bodyclass .= ' adminify-dark-mode ';
37 + }
27 38
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 - }
39 + // Submenu Hover Style
40 + if ($menu_hover_submenu == 'classic') {
41 + $bodyclass .= ' adminify-default-v-menu ';
42 + } elseif ($menu_hover_submenu == 'accordion') {
43 + $bodyclass .= ' adminify-accordion-v-menu ';
44 + } elseif ($menu_hover_submenu == 'toggle') {
45 + $bodyclass .= ' adminify-toggle-v-menu ';
46 + }
32 47
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 48
47 - $bodyclass = '';
48 - if($folded) {
49 - $bodyclass .= ' ' . $folded;
50 - }
49 + // Active Menu Style
50 + if ($active_menu_style == 'classic') {
51 + } elseif ($active_menu_style == 'rounded') {
52 + $bodyclass .= ' adminify-rounded-v-menu ';
53 + $bodyclass .= ' adminify-round-open-menu ';
54 + }
51 55
52 - if ($color_mode == 'light') {
53 - $bodyclass .= ' adminify-light-mode ';
54 - }
55 - if ($color_mode == 'dark') {
56 - $bodyclass .= ' adminify-dark-mode ';
57 - }
56 + return $classes . $bodyclass;
57 + }
58 58
59 - if ($color_preset != 'preset1') {
60 - $bodyclass .= ' color-preset-adminify-icon-white';
61 - }
62 -
63 59
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 - // }
60 + public function jltwp_adminify_output_scripts()
61 + {
72 62
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 - // }
63 + $jltwp_adminify_output_css = '';
78 64
79 - return $classes . $bodyclass;
80 - }
65 + // Menu Styles
66 + // Typography Settings
67 + if (!empty($this->options['menu_styles']['menu_typography']['font-family'])) {
68 + if ($this->options['layout_type'] === 'vertical') {
69 + $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'] . '}';
70 + }
81 71
82 - public function output_styles()
83 - {
84 - // $pxlbsadminify_output_css = '';
85 - // $pxlbsadminify_output_css.= 'body.wp-adminify{';
72 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
73 + if ($this->options['layout_type'] === 'horizontal') {
74 + $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'] . '}';
75 + }
76 + }
77 + }
78 + if (!empty($this->options['menu_styles']['menu_typography']['font-weight'])) {
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 { font-weight: ' . $this->options['menu_styles']['menu_typography']['font-weight'] . '}';
81 + }
86 82
87 - // $pxlbsadminify_output_css.= '}';
83 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
84 + if ($this->options['layout_type'] === 'horizontal') {
85 + $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-weight: ' . $this->options['menu_styles']['menu_typography']['font-weight'] . '}';
86 + }
87 + }
88 + }
89 + if (!empty($this->options['menu_styles']['menu_typography']['text-align'])) {
90 + if ($this->options['layout_type'] === 'vertical') {
91 + $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'] . '}';
92 + }
88 93
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);
94 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
95 + if ($this->options['layout_type'] === 'horizontal') {
96 + $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 { text-align: ' . $this->options['menu_styles']['menu_typography']['text-align'] . '}';
97 + }
98 + }
99 + }
100 + if (!empty($this->options['menu_styles']['menu_typography']['text-transform'])) {
101 + if ($this->options['layout_type'] === 'vertical') {
102 + $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'] . '}';
103 + }
104 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
105 + if ($this->options['layout_type'] === 'horizontal') {
106 + $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 { text-transform: ' . $this->options['menu_styles']['menu_typography']['text-transform'] . '}';
107 + }
108 + }
109 + }
110 + if (!empty($this->options['menu_styles']['menu_typography']['font-size'])) {
111 + if ($this->options['layout_type'] === 'vertical') {
112 + $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;}';
113 + }
114 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
115 + if ($this->options['layout_type'] === 'horizontal') {
116 + $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-size: ' . $this->options['menu_styles']['menu_typography']['font-size'] . 'px;}';
117 + }
118 + }
119 + }
120 + if (!empty($this->options['menu_styles']['menu_typography']['line-height'])) {
121 + if ($this->options['layout_type'] === 'vertical') {
122 + $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;}';
123 + }
124 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
125 + if ($this->options['layout_type'] === 'horizontal') {
126 + $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 { line-height: ' . $this->options['menu_styles']['menu_typography']['line-height'] . 'px;}';
127 + }
128 + }
129 + }
130 + if (!empty($this->options['menu_styles']['menu_typography']['letter-spacing'])) {
131 + if ($this->options['layout_type'] === 'vertical') {
132 + $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;}';
133 + }
134 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
135 + if ($this->options['layout_type'] === 'horizontal') {
136 + $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 { letter-spacing: ' . $this->options['menu_styles']['menu_typography']['letter-spacing'] . 'px;}';
137 + }
138 + }
139 + }
93 140
94 - // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
141 + // Menu Wrapper Padding
142 + if (!empty($this->options['menu_styles']['menu_wrapper_padding']['top']) && $this->options['menu_styles']['menu_wrapper_padding']['top'] !== '') {
143 + if ($this->options['layout_type'] === 'vertical') {
144 + $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'] . ';}';
145 + }
146 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
147 + if ($this->options['layout_type'] === 'horizontal') {
148 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu { padding-top: ' . esc_attr($this->options['menu_styles']['menu_wrapper_padding']['top']) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
149 + }
150 + }
151 + }
152 + if (!empty($this->options['menu_styles']['menu_wrapper_padding']['right']) && $this->options['menu_styles']['menu_wrapper_padding']['right'] !== '') {
153 + if ($this->options['layout_type'] === 'vertical') {
154 + $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'] . ';}';
155 + }
156 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
157 + if ($this->options['layout_type'] === 'horizontal') {
158 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu { padding-right: ' . esc_attr($this->options['menu_styles']['menu_wrapper_padding']['right']) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
159 + }
160 + }
161 + }
162 + if (!empty($this->options['menu_styles']['menu_wrapper_padding']['bottom']) && $this->options['menu_styles']['menu_wrapper_padding']['bottom'] !== '') {
163 + if ($this->options['layout_type'] === 'vertical') {
164 + $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'] . ';}';
165 + }
166 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
167 + if ($this->options['layout_type'] === 'horizontal') {
168 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu { padding-bottom: ' . esc_attr($this->options['menu_styles']['menu_wrapper_padding']['bottom']) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
169 + }
170 + }
171 + }
172 + if (!empty($this->options['menu_styles']['menu_wrapper_padding']['left']) && $this->options['menu_styles']['menu_wrapper_padding']['left'] !== '') {
173 + if ($this->options['layout_type'] === 'vertical') {
174 + $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'] . ';}';
175 + }
176 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
177 + if ($this->options['layout_type'] === 'horizontal') {
178 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu { padding-left: ' . esc_attr($this->options['menu_styles']['menu_wrapper_padding']['left']) . $this->options['menu_styles']['menu_wrapper_padding']['unit'] . ';}';
179 + }
180 + }
181 + }
95 182
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 - // }
183 + // Sub Menu Wrapper Padding
184 + if (!empty($this->options['menu_styles']['submenu_wrapper_padding']['top']) && $this->options['menu_styles']['submenu_wrapper_padding']['top'] !== '') {
185 + if ($this->options['layout_type'] === 'vertical') {
186 + $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'] . ';}';
187 + }
188 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
189 + if ($this->options['layout_type'] === 'horizontal') {
190 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul { padding-top: ' . esc_attr($this->options['menu_styles']['submenu_wrapper_padding']['top']) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
191 + }
192 + }
193 + }
194 + if (!empty($this->options['menu_styles']['submenu_wrapper_padding']['right']) && $this->options['menu_styles']['submenu_wrapper_padding']['right'] !== '') {
195 + if ($this->options['layout_type'] === 'vertical') {
196 + $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'] . ';}';
197 + }
198 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
199 + if ($this->options['layout_type'] === 'horizontal') {
200 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul { padding-right: ' . esc_attr($this->options['menu_styles']['submenu_wrapper_padding']['right']) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
201 + }
202 + }
203 + }
204 + if (!empty($this->options['menu_styles']['submenu_wrapper_padding']['bottom']) && $this->options['menu_styles']['submenu_wrapper_padding']['bottom'] !== '') {
205 + if ($this->options['layout_type'] === 'vertical') {
206 + $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'] . ';}';
207 + }
208 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
209 + if ($this->options['layout_type'] === 'horizontal') {
210 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul { padding-bottom: ' . esc_attr($this->options['menu_styles']['submenu_wrapper_padding']['bottom']) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
211 + }
212 + }
213 + }
214 + if (!empty($this->options['menu_styles']['submenu_wrapper_padding']['left']) && $this->options['menu_styles']['submenu_wrapper_padding']['left'] !== '') {
215 + if ($this->options['layout_type'] === 'vertical') {
216 + $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'] . ';}';
217 + }
218 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
219 + if ($this->options['layout_type'] === 'horizontal') {
220 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul { padding-left: ' . esc_attr($this->options['menu_styles']['submenu_wrapper_padding']['left']) . $this->options['menu_styles']['submenu_wrapper_padding']['unit'] . ';}';
221 + }
222 + }
223 + }
101 224
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 - }
225 + // Vertical Menu Parent Padding
226 + if (!empty($this->options['layout_type']) === 'vertical') {
227 + if (!empty($this->options['menu_styles']['menu_vertical_padding'])) {
228 + $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;}';
229 + }
230 + }
231 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
232 + if (!empty($this->options['layout_type']) === 'horizontal') {
233 + // Horizontal Menu Parent Padding
234 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a { padding:0px ' . esc_attr($this->options['menu_styles']['horz_menu_parent_padding']) . 'px;}';
235 + }
236 + }
111 237
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 - }
238 +
239 + // Submenu Item Padding
240 + if (!empty($this->options['layout_type']) === 'vertical') {
241 + // Sub Menu Vertical Padding
242 + if (!empty($this->options['menu_styles']['submenu_vertical_space'])) {
243 + $jltwp_adminify_output_css .= '.wp-adminify #adminmenu .wp-submenu li a { padding:' . esc_attr($this->options['menu_styles']['submenu_vertical_space']) . 'px 0px !important;}';
244 + }
245 + }
246 +
247 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
248 + if (!empty($this->options['layout_type']) === 'horizontal') {
249 + // Sub Menu Horizontal Padding
250 + if (!empty($this->options['menu_styles']['submenu_vertical_space'])) {
251 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a { padding:' . esc_attr($this->options['menu_styles']['submenu_vertical_space']) . 'px 0px !important;}';
252 + }
253 + }
254 + }
255 +
256 +
257 +
258 +
259 + // Parent Menu Colors
260 +
261 + // Background Color
262 + if (!empty($this->options['menu_styles']['parent_menu_colors']['wrap_bg'])) {
263 + if ($this->options['layout_type'] === 'vertical') {
264 + $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;}';
265 + }
266 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
267 + if ($this->options['layout_type'] === 'horizontal') {
268 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu, .wp-adminify.horizontal-menu .wp-adminify-horizontal-menu .navbar, .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;}';
269 + }
270 + }
271 + }
272 +
273 + // Menu Item Hover Background
274 + if (!empty($this->options['menu_styles']['parent_menu_colors']['hover_bg'])) {
275 + if ($this->options['layout_type'] === 'vertical') {
276 + $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;}';
277 + }
278 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
279 + if ($this->options['layout_type'] === 'horizontal') {
280 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a.menu-top:hover { background:' . esc_attr($this->options['menu_styles']['parent_menu_colors']['hover_bg']) . ' !important;}';
281 + }
282 + }
283 + }
284 +
285 + // Text Color
286 + if (!empty($this->options['menu_styles']['parent_menu_colors']['text_color'])) {
287 + if ($this->options['layout_type'] === 'vertical') {
288 + $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;}';
289 + }
290 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
291 + if ($this->options['layout_type'] === 'horizontal') {
292 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li.wp_adminify_toplevel > a { color:' . esc_attr($this->options['menu_styles']['parent_menu_colors']['text_color']) . ' !important;}';
293 + }
294 + }
295 + }
296 +
297 + // Text Color
298 + if (!empty($this->options['menu_styles']['parent_menu_colors']['text_hover'])) {
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 + }
302 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
303 + if ($this->options['layout_type'] === 'horizontal') {
304 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li.wp_adminify_toplevel > a:hover { color:' . esc_attr($this->options['menu_styles']['parent_menu_colors']['text_hover']) . ' !important;}';
305 + }
306 + }
307 + }
308 +
309 + // Active Menu Background Color
310 + if (!empty($this->options['menu_styles']['parent_menu_colors']['active_bg'])) {
311 + if ($this->options['layout_type'] === 'vertical') {
312 + $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;}';
313 + }
314 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
315 + if ($this->options['layout_type'] === 'horizontal') {
316 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a.menu-top.current { background:' . esc_attr($this->options['menu_styles']['parent_menu_colors']['active_bg']) . ' !important;}';
317 + }
318 + }
319 + }
320 +
321 + if (!empty($this->options['menu_styles']['parent_menu_colors']['active_color'])) {
322 + if ($this->options['layout_type'] === 'vertical') {
323 + $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;}';
324 + }
325 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
326 + if ($this->options['layout_type'] === 'horizontal') {
327 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a.menu-top.current { color:' . esc_attr($this->options['menu_styles']['parent_menu_colors']['active_color']) . ' !important;}';
328 + }
329 + }
330 + }
331 +
332 +
333 + // Sub Menu Colors
334 + if (!empty($this->options['menu_styles']['sub_menu_colors']['wrap_bg'])) {
335 + if ($this->options['layout_type'] === 'vertical') {
336 + $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;}';
337 + }
338 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
339 + if ($this->options['layout_type'] === 'horizontal') {
340 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul { background:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['wrap_bg']) . ' !important;}';
341 + }
342 + }
343 + }
344 +
345 + if (!empty($this->options['menu_styles']['sub_menu_colors']['hover_bg'])) {
346 + if ($this->options['layout_type'] === 'vertical') {
347 + $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;}';
348 + }
349 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
350 + if ($this->options['layout_type'] === 'horizontal') {
351 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a:hover { background:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['hover_bg']) . ' !important;}';
352 + }
353 + }
354 + }
355 +
356 + if (!empty($this->options['menu_styles']['sub_menu_colors']['text_color'])) {
357 + if ($this->options['layout_type'] === 'vertical') {
358 + $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;}';
359 + }
360 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
361 + if ($this->options['layout_type'] === 'horizontal') {
362 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a { color:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['text_color']) . ' !important;}';
363 + }
364 + }
365 + }
366 +
367 + if (!empty($this->options['menu_styles']['sub_menu_colors']['text_hover'])) {
368 + if ($this->options['layout_type'] === 'vertical') {
369 + $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;}';
370 + }
371 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
372 + if ($this->options['layout_type'] === 'horizontal') {
373 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a:hover { color:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['text_hover']) . ' !important;}';
374 + }
375 + }
376 + }
377 +
378 + if (!empty($this->options['menu_styles']['sub_menu_colors']['active_bg'])) {
379 + if ($this->options['layout_type'] === 'vertical') {
380 + $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;}';
381 + }
382 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
383 + if ($this->options['layout_type'] === 'horizontal') {
384 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a.current { background:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['active_bg']) . ' !important;}';
385 + }
386 + }
387 + }
388 +
389 + if (!empty($this->options['menu_styles']['sub_menu_colors']['active_color'])) {
390 + if ($this->options['layout_type'] === 'vertical') {
391 + $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;}';
392 + }
393 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
394 + if ($this->options['layout_type'] === 'horizontal') {
395 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li ul li a.current { color:' . esc_attr($this->options['menu_styles']['sub_menu_colors']['active_color']) . ' !important;}';
396 + }
397 + }
398 + }
399 +
400 + // User Info Styles
401 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
402 + if (!empty($this->options['user_info_style']['info_text_color'])) {
403 + $jltwp_adminify_output_css .= '.wp_adminify_user-details a { color:' . esc_attr($this->options['user_info_style']['info_text_color']) . ' !important;}';
404 + }
405 + if (!empty($this->options['info_text_hover_color'])) {
406 + $jltwp_adminify_output_css .= '.wp_adminify_user-details a:hover { color:' . esc_attr($this->options['user_info_style']['info_text_hover_color']) . ' !important;}';
407 + }
408 + if (!empty($this->options['user_info_style']['info_text_border'])) {
409 + if(!empty($this->options['user_info_style']['info_text_border']['all'])){
410 + $jltwp_adminify_output_css .= '.wp_adminify_user {
411 + border:' . esc_attr($this->options['user_info_style']['info_text_border']['all']) . 'px ' . esc_attr($this->options['user_info_style']['info_text_border']['style']) . ' ' . esc_attr($this->options['user_info_style']['info_text_border']['color']) . ';}';
412 + }
413 + }
414 +
415 + if (!empty($this->options['user_info_style']['info_icon_color'])) {
416 + $jltwp_adminify_output_css .= '.wp_adminify_user-actions i { color:' . esc_attr($this->options['user_info_style']['info_icon_color']) . ' !important;}';
417 + }
418 + if (!empty($this->options['user_info_style']['info_icon_hover_color'])) {
419 + $jltwp_adminify_output_css .= '.wp_adminify_user-actions i:hover { color:' . esc_attr($this->options['user_info_style']['info_icon_hover_color']) . ' !important;}';
420 + }
421 + }
422 +
423 + // Notification Counter
424 + // Background Color
425 + if (!empty($this->options['menu_styles']['notif_colors']['notif_bg'])) {
426 + if ($this->options['layout_type'] === 'vertical') {
427 + $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
428 + { background-color:' . esc_attr($this->options['menu_styles']['notif_colors']['notif_bg']) . ' !important;}';
429 + }
430 +
431 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
432 + if ($this->options['layout_type'] === 'horizontal') {
433 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a span[class*="count-"], .wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li.current a span[class*="count-"] { background:' . esc_attr($this->options['menu_styles']['notif_colors']['notif_bg']) . ' !important;}';
434 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a [class*="count-"] [class*="-count"]:before {
435 + border-left: 3px solid ' . esc_attr($this->options['menu_styles']['notif_colors']['notif_bg']) . ' !important;
436 + border-top: 5px solid ' . esc_attr($this->options['menu_styles']['notif_colors']['notif_bg']) . ' !important;}';
437 + }
438 + }
439 + }
440 +
441 + if (!empty($this->options['menu_styles']['notif_colors']['notif_color'])) {
442 + if ($this->options['layout_type'] === 'vertical') {
443 + $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']) . ';}';
444 + }
445 + if (jltwp_adminify()->can_use_premium_code__premium_only()) {
446 + if ($this->options['layout_type'] === 'horizontal') {
447 + $jltwp_adminify_output_css .= '.wp-adminify.horizontal-menu .wp-adminify-horizontal-menu ul.horizontal-menu li a span[class*="count-"] { color:' . esc_attr($this->options['menu_styles']['notif_colors']['notif_color']) . ' !important;}';
448 + }
449 + }
450 + }
451 +
452 + // Custom CSS
453 + if (!empty($this->options['custom_css'])) {
454 + $jltwp_adminify_output_css .= esc_attr($this->options['custom_css']);
455 + }
456 +
457 + // Combine the values from above and minifiy them.
458 + $jltwp_adminify_output_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_output_css);
459 + $jltwp_adminify_output_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_output_css);
460 + $jltwp_adminify_output_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_output_css);
461 +
462 + wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_output_css));
463 +
464 +
465 + // Custom JS
466 + $custom_js = (array) AdminSettings::get_instance()->get();
467 + $custom_js = !empty($custom_js['custom_js']) ? $custom_js['custom_js'] : '';
468 +
469 + if (!empty($custom_js)) {
470 + echo "\n<!-- Start of WP Adminify Custom JS -->\n";
471 + echo '<script type="text/javascript">';
472 + echo "\n{$custom_js}\n";
473 + echo '</script>';
474 + echo "\n<!-- /End of WP Adminify Custom JS -->\n";
475 + }
476 + }
130 477 }