PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.3.0
Adminify – White Label, Admin Menu Editor, Login Customizer v4.3.0
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Classes / OutputCSS.php

OutputCSS.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.3.0, at Inc/Classes/OutputCSS.php

131 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PXLBSAdminify\Inc\Classes;
4
5 use PXLBSAdminify\Inc\Admin\AdminSettings;
6 use PXLBSAdminify\Inc\Classes\OutputCSS_Body;
7
8
9 // no direct access allowed
10 if (!defined('ABSPATH')) {
11 exit;
12 }
13
14 class OutputCSS
15 {
16 public $options;
17
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 }
131