| @@ -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 | +} | |